C ++基础知识

时间:2013-04-03 22:50:24

标签: c++ visual-studio

在C#中待了一段时间后,我决定深入研究C ++,因为我喜欢编写视频游戏。 C ++广泛应用于整个行业,所以我想尝试一下。

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

C ++似乎使用了这个,但并不常见,有时它似乎更像是一种事后的想法,或者我完全误解了C ++中“对象/类”的目的。

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

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

非常感谢你!

P.S。我想可能没有“常见的”C ++结构这样的东西,但是对象和方法之间的关系或者缺乏它们是我正在寻找的东西

2 个答案:

答案 0 :(得分:3)

你可以在C ++中尽可能多地使用类,但是它们对于C#中的所有内容都不是强制性的(尽管不是,入口点不能在类中)在C ++中,你可以自己决定其他大多数事情。)

至于你应该如何编写C ++:对它的看法随着时间的推移而发生了变化。回到(比如说)1990年代早期,大多数人写C ++就像今天做Java或C#一样,基本上所有的代码,类型等都被卷入了某种类或其他类。然而,随着时间的推移,这已经变得不那么常见 - 大多数C ++程序员现在倾向于更喜欢自由函数(即,不是类的成员),并且只在合理时使用成员函数替代品显然是次等的。

标题是理论上非常简单的事情之一,但在实践中可能相当混乱。标头只是包含在其他文件中的文件。您可以使用#include将基本上任何文件的内容包含在您认为合适的另一个文件中。

实际上,您通常希望将函数,类型,常量等的声明放入标题中,这样您就可以将它们包含在多个源文件中,以便所有这些源文件都能获得匹配的声明。

但是,对于模板,您通常需要不仅将声明,而是整个定义放入标题中,因此在您实例化该模板的任何地方都可以看到它。无论好坏,支持C ++提供单独的模板编译正好在“最小”和“不存在”之间的边缘。

答案 1 :(得分:-1)

win32完全不同于visual c ++ clr / cli或c#....但是经验丰富..你会看到模拟性。 在win32中,你有主要的消息循环,必须自己传递一切......甚至是强硬的面向对象......在像c·或visual c ++这样的manneged代码中......你像按钮这样的控件可以拥有自己的消息循环和你不必自己收集垃圾....考虑到它是正确的。

在win32 c ++中,您需要非常好地处理数据,否则会出现内存漏洞/溢出。 你会像建筑师一样工作,记录你的变量,不要躲过任何事情。 这是主要区别!