C++基础知识

问题描述:

在C#中过了一段时间后,我决定钻研C++,因为我喜欢编程视频游戏。 C++广泛用于整个行业,所以我想给它一个机会。C++基础知识

我注意到的第一件事是,C++似乎并没有使用“对象”的方式C#一样。在C#中,所有编程都是在对象(即类)中完成的,没有方法可以在一个之外声明,甚至不是一个入口点。

C++似乎用这个,但不经常,有时它似乎是更一种事后的,或许我完全误解在C“类/对象” ++的目的。

这使我对另一件事感到困惑:标题。从我可以收集的内容来看,这是您定义要在程序中使用的对象/方法的地方。这是主程序的一个框架。

基本上我很困惑项目组成。我试图使用这个像C#,但'鼻涕工作。理想情况下,这里有人熟悉这两种语言,可以帮助缩小差距,但只是简单地解释一下普通的C++程序结构就足够了。

非常感谢您提前!

P.S.我想,有可能是没有这样的事情“公共” C++结构,但对象和方法或缺乏他们之间的关系是什么,我正在寻找

+1

你的问题具体是什么?我们很乐意提供帮助,但SO格式期望您提供明确答案的具体问题。你可能想把它分成几个更小的问题。 – templatetypedef 2013-04-03 22:52:12

+2

这不是一个事后的想法。 C++是一种多范式语言。它允许你在你有一些状态和非成员函数时使用类。对我而言,这是什么使它成为一种伟大的语言。你可以为工作选择合适的工具。 – 2013-04-03 22:53:05

+3

您需要下列其中一个:[The Definitive C++ Book Guide and List](http://*.com/q/388242)。不幸的是,解释C++编程的所有基础知识对于Stack Overflow问题来说太广泛了。在学习语言时,您需要提出更具体的问题。 – 2013-04-03 22:54:54

的Win32比的Visual C完全以不同++ CLR/CLI或c#....但是,经验丰富..你会看到simulus。在win32中有 你有主要的消息循环,必须自己接收所有东西......甚至是强硬的面向对象......像c·或visual C++这样的行为规范的代码......像按钮一样的控件可以有自己的消息循环而且你不必自己收集垃圾......考虑到它是正确的。

在Win32 C++,你需要处理你的数据非常WEL,将发生内存,否则孔/溢出。 你会像一个建筑师一样工作,记录你的变量,并且不会抛弃任何背后的东西。这是主要区别!

+1

我从来没有见过有自己的消息循环的按钮控件。通常,消息循环是每个线程的。除了那个挑剔之外,C++还有很多比Win32编程更多的东西。 – 2013-04-03 23:00:55

+0

'虚拟无效WndProc(消息%m)覆盖 \t {...}' 你可以在任何控制和间谍使用此代码。 – NaturalDemon 2013-04-03 23:02:47

+0

(1)这是C++/CLI代码,而不是C++代码。这意味着它运行在.NET Framework上,因此几乎与这里提出的问题无关。 (2)这不是一个消息循环,而是一个窗口过程。消息循环将消息发送到窗口过程。 (3)这是本机C++和.NET语言之间的非唯一区别。两者都有消息循环和窗口过程。 – 2013-04-03 23:04:51

您可以使用类约很多,还是你在C++中要少,但他们不是强制性的一切都像他们在C#(虽然没有,入口点不能在它绝对真实C++类,但你可以自己决定其他大部分事情)。

至于如何应该写C++:对观点随时间而变化。早在20世纪90年代初,大多数人就像现在使用Java或C#一样编写C++,基本上所有的代码,类型等都汇总成某种类或其他类。但是,随着时间的推移,这种情况已经不那么常见了 - 大多数C++程序员现在都倾向于在合理时倾向于使用*函数(即不是类的成员),并且仅在使用成员函数时才会使用成员函数替代品显然较差。

页眉是那些理论上很简单的一件事,但在实际中可能相当混乱。标题只是一个包含在其他文件中的文件。如果您认为合适,您可以使用#include将基本上任何文件的内容包含到另一个文件中。

在实践中,通常要放的功能,类型,常量,等等,到头部的声明,这样你就可以将它们包括在多个源文件,因此,所有这些源文件得到匹配的声明。

但是,使用模板时,通常不仅需要声明,而且需要将整个定义放入一个头中,以便在实例化该模板的任何地方都可以看到它。无论好坏,支持C++提供的模板单独编译正好在“最小”和“不一致”之间的边缘。