为什么初始化具有定义的ctor类型的值的对象不会调用复制构造函数?

时间:2019-12-07 22:54:02

标签: c++ copy-constructor copy-initialization

你好,我有一个简单的问题:如果我有一个类的构造函数以整数为例,那么如果我复制初始化该类的对象,那么它就是复制构造函数或构造函数:

class M 
{
    public:
        M(int) { cout << "M(int)\n"; }
        M(const M&) = delete;
        M(const M&&) = delete;
};


int main()
{

    M m = 9; // why M(int) is called but not a copy-ctor or move-ctor?
}
  • 正如您所看到的,我在这里存在歧义:M m = 9;我认为它是Copy-initialization的一种形式,因此通常我认为应该调用copy-ctor或move-ctor。我已声明删除主题以获取编译时错误,但它有效吗?

0 个答案:

没有答案