【发布时间】:2010-07-16 19:07:10
【问题描述】:
我对编写“更大”的应用程序很陌生。我现在已经在 Visual C++ 2010 中编写了一个包含几千行代码的命令行应用程序,它可以编译并且运行良好。大多数代码都是 C 兼容的(我认为),但是,我发现在这里和那里使用一些 C++ 结构很有用。例如,有时我使用 new/delete 而不是 malloc/free 来调用构造函数,或者为了方便使用 std::vector 或 std::set。我将所有代码放在大约 25 个 .h 文件中,但 int main() 除外,它当前位于 .cpp 文件中。
我的具体问题是:
我猜我的所有代码都编译为 C++ 代码。使代码的某些部分真正符合 C 语言是否有意义?那么我可以让 Visual Studio 将它编译为 C 吗?对于程序的大部分,使它们符合 C 标准(例如,用 malloc 和初始化函数替换 new 等)对于某些更难的部分(转换 std::vector)将非常简单。还是只有当一切都是 C 时才有意义?会有什么优势?或者,将所有内容都转换为 C++ 是否有意义?例如,使用 new 代替 malloc 和 std::string 代替 char*。
我猜它并不打算将所有代码都放在 .h 文件中。我应该如何将我的代码放入文件中?除了少数,我没有很大的班级。我的大部分代码都是过程和函数。
我的两个主要关注点是效率和良好的编程标准。便携性现在不是问题。
非常感谢!!
【问题讨论】:
-
听起来你使用
malloc和free除了熟悉之外没有任何理由。我建议你熟悉 C++ 的做事方式。使用new和delete,不要犹豫使用vectors等。 -
不要将所有代码都放在 H 文件中。这在更大的应用程序中效果不佳。学会将声明与定义分开。
-
您的指导很有帮助。 @zvonimir:我的大部分代码都是过程和函数......我应该为函数声明创建一个 .h 文件吗?
标签: c++ c visual-c++