它们之间有什么区别吗:
struct Class* CreateClass();
和:
Class* CreateClass();
这只是一个工厂函数声明。你可以看到一个在开始时有结构,一个没有。我已经尝试了两种方法,但似乎没有什么不同。
我应该使用哪个?
最佳答案
来自C;在 C++ 中没有区别*。
*好吧,我撒谎了,对不起。 :P 如果你真的想要的话,你可以混淆自己,如果你使用具有相同名称但底层类型不同的 typedef
来使它们不同,但通常它们是不同的。这是假设 Class
已经声明,但是...如果 Class
未声明,第二个甚至不会编译。
也就是说,惯例是:
typedef struct Class { ... } Class;
因此它在 C 和 C++ 中的编译方式相同。
关于C++返回类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931546/