c++ - 为什么我们不能从构造函数返回任何东西?

标签 c++ constructor history

C++ 说我们不能从构造函数返回任何东西?其背后的历史原因是什么? 为什么 Bjarne 不允许构造函数返回不同于任何其他成员函数的东西?

最佳答案

因为在 new 语句或变量初始值设定项中构造对象时,返回的对象是正在构造的新对象。您会如何处理从构造函数返回的对象?它永远无法返回任何地方;返回的是正在构造的对象。在调用构造函数之前已经(部分)创建了该对象(否则,构造函数将没有可处理的对象),并且它必须是从构造函数返回的对象,因此没有必要让用户返回它或让他们通过尝试返回不同的东西来混淆自己。

关于c++ - 为什么我们不能从构造函数返回任何东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757213/

相关文章:

c++ - 为什么我的 TB_INSERTBUTTON 消息导致 comctl32 抛出?

c++ boost将char数组反序列化为obj

python - 有人可以解释一下这段代码的第二个版本是如何工作的吗?

c++ - 限制对 C++ 构造函数和析构函数的访问

bash - 在 emacs 中使用 bash 时没有历史记录?

c++ - 在 RTTI 代码中使用非 RTTI 接口(interface)

c++ - 继承和覆盖 std::string 的函数?

C# - StackOverflowException 在构造函数上实例化类

delphi - 为什么 Delphi 编译器允许在方法调用的最后一个参数后面使用逗号?

ajax - 如何在 UpdatePanel 中保存历史记录?