C++返回类型问题

标签 c++ return-type

它们之间有什么区别吗:

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/

相关文章:

c++ - std::regex_replace 只替换所有其他匹配项?

c - 不应该是一个具有返回类型但在主体中没有返回的函数是错误的吗?

error-handling - Web API的返回类型,可轻松处理错误

Java - 错误 : return type is incompatible

c++ - 返回不同类型变量的单个 get 方法

C++:带有 packaged_task 的核心转储

c++ - 映射可变参数模板参数

c++ - 如何自动更新重写方法的 *this 返回类型?

c++ - 如果编译器可以自行内联函数,为什么内联函数必须在 header 中为 "defined"

c++ - 查找通过 RegisterWindowMessage Windows API 获取的消息的原始名称