我已经用谷歌搜索并阅读了很多帖子,但是有很多不同的答案都合乎逻辑,我想知道该主题的专家是否可以揭开这个问题的神秘面纱。
有人说没有返回是因为没有办法返回——语法禁止它——是的,这是有道理的,但我相信所有函数都必须返回一些东西,不是吗?其他人说构造函数会返回新创建的对象本身,这似乎是有道理的,因为在构造函数上使用了赋值运算符。还有一些人有其他有趣的解释。
原文由 wonton 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经用谷歌搜索并阅读了很多帖子,但是有很多不同的答案都合乎逻辑,我想知道该主题的专家是否可以揭开这个问题的神秘面纱。
有人说没有返回是因为没有办法返回——语法禁止它——是的,这是有道理的,但我相信所有函数都必须返回一些东西,不是吗?其他人说构造函数会返回新创建的对象本身,这似乎是有道理的,因为在构造函数上使用了赋值运算符。还有一些人有其他有趣的解释。
原文由 wonton 发布,翻译遵循 CC BY-SA 4.0 许可协议
构造函数没有指定返回类型,因为它是多余的:除了构造函数可能“返回”的类型之外,没有其他类型。我将“return”放在引号中,因为从技术上讲,构造函数不会返回任何内容:当在静态上下文中调用它们时,它们会在适当的位置初始化一个实例;当它们在动态上下文中被调用时,它是运算符 new
返回一些东西,而不是构造函数。
原文由 Sergey Kalinichenko 发布,翻译遵循 CC BY-SA 3.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
1 回答3.3k 阅读
构造函数不像其他函数那样被调用,所以它们不会像其他函数那样返回。它们作为某些构造的副作用执行(强制转换、
new
、变量定义、 ctor-initializer-list 、按值传递、按值返回)。