C++风格的构造函数调用

标签 c++ constructor initialization language-lawyer

我有一个名为 Thing 的对象,它的构造函数采用一个 int。

此代码按预期工作:

东西东西(5);

然而,我不小心写了以下内容:

事物事物 = 事物 (5);//注意:没有 'new'

并得到错误“Thing”的初始化没有匹配的构造函数。后一段代码的实际含义是什么?我知道如果我在那里放一个 new 是什么意思,但是如果没有 new,那是什么意思?

最佳答案

Thing thing = Thing(5);

需要定义一个(非显式)复制(或移动)构造函数:

Thing(const Thing &);

(即使出于优化原因未调用它)。

关于C++风格的构造函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41891631/

相关文章:

C++ 11 数组通过引用传递,函数中没有大小

c++ - 在构造函数中初始化 vector - C++

c++ - 使用类 [错误] ld 返回 1 退出状态

c - 如何进行这个初始化?

ios - 我不应该使用self-> iVar = some;而不是iVar =我的init中有东西

c++ - 如何在 Qt/C++ 中有效地重新初始化多维数组?

c++ - OpenGL : glRotatef not working?

c++ - 我的项目在 vs2008 中编译没有任何问题,但在 2010 中却没有?

java - 如果类引用原始类型,则所有访问通过 ASM 生成的类的构造函数的反射方法都会抛出 NoClassDefFoundError

swift - 我怎样才能分解一个大的 init (由于大量的计算),以获得更好的可读性?