-3

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

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

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

这让我想到了另一件事我感到困惑:标题。据我所知,这是您定义要在程序中使用的对象/方法的地方。它是一种主程序的框架。

基本上我对项目组成感到困惑。我正在尝试像 C# 一样使用它,但它不起作用。理想情况下,这里有人熟悉这两种语言并且可以帮助缩小差距,但只需简要说明常见的 C++ 程序结构就足够了。

非常感谢您!

PS我想可能没有“通用” C++结构之类的东西,但是对象和方法之间的关系或缺少它们是我正在寻找的

4

2 回答 2

3

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

至于你应该如何编写 C++:随着时间的推移,人们对此的看法已经发生了变化。回到(比如说)1990 年代初期,大多数人写 C++ 的程度就像他们今天写 Java 或 C# 一样,基本上所有的代码、类型等都被汇总到某种类中。然而,随着时间的推移,这种情况变得越来越不常见——以至于大多数 C++ 程序员现在倾向于在完全合理的情况下更喜欢自由函数(即,不是类成员的函数),并且仅在以下情况下才使用成员函数替代品明显逊色。

标头是理论上非常简单的东西之一,但在实践中可能会相当混乱。标头只是包含在其他文件中的文件。您可以根据#include需要将基本上任何文件的内容包含到另一个文件中。

在实践中,您通常希望将函数、类型、常量等的声明放入头文件中,这样您就可以将它们包含在多个源文件中,这样所有这些源文件都会得到匹配的声明。

然而,使用模板,您通常不仅需要将声明,而且将整个定义放入头文件中,因此在您实例化该模板的任何地方,编译器都可以看到它。无论好坏,C++ 为模板的单独编译提供的支持正好处于“最小”和“无”之间的参差不齐的边缘。

于 2013-04-03T23:00:28.217 回答
-1

win32 与 Visual c++ clr/cli 或 c# 完全不同.. 但一旦有经验.. 你会看到相似之处。在 win32 中,您拥有主消息循环,并且必须自己中继所有内容……甚至是面向对象的复杂……在 c· 或 Visual c++ 之类的人工代码中……您像按钮一样的控件可以拥有自己的消息循环和您不必自己收集垃圾....考虑到它做得对。

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

于 2013-04-03T22:56:50.277 回答