我正在开发一个项目,我正在手动将C ++代码转换为C#。我有C#的工作知识,但我以前从未使用过C ++。
我需要知道的是如何处理头文件,因为C#没有这样的东西。假设我有buffer.h和buffer.cpp,我只是将它们转换并将它们包含在同一个buffer.cs文件中吗?
C ++头文件是否与Ada spec文件有关?
答案 0 :(得分:6)
包含" .h文件"之间的区别和来源" .cpp文件"只是常规之一。惯例是声明(函数,类等)在.h文件中,在实现(定义)或.cpp文件中是#include
d。对于大多数情况,您可以将X.h和X.cpp折叠为单个X.cs文件。
那就是说,你仍然需要看看每个文件中发生了什么。对C ++的基本理解在这里会有很长的路要走,我强烈建议你在进入翻译之前先获得一些东西。
答案 1 :(得分:1)
答案 2 :(得分:1)
它可能会帮助您将C ++头文件视为包含两种主要类型的东西:类定义,定义其成员数据和“接口”(不要与C#接口类型混淆)和“其他东西” ”。类定义部分包含方法原型和类成员变量。
关于原型的好消息是你在C#中根本不需要它们。您的类的客户端通过命名空间的程序集从实现本身接收原型信息。数据成员包含在C#类实现中,通常作为通过C#属性公开的私有成员。
上面提到的“其他东西”可以包括#defines,你通常想把它变成C#中的const定义。枚举等其他内容在C#中具有等价物,您当然会将其移入您班级的.cs文件中。