首页 > 解决方案 > 为什么不调用复制构造函数?

问题描述

class MyClass{
public:
   MyClass();
   MyClass(const MyClass& my);
   MyClass(MyClass&& my);
};

void func(MyClass my);

int main()
{
   func(MyClass());
   MyClass myClass(MyClass());


   return 0;
}

func(MyClass())运行良好。这里,MyClass()是一个匿名实例。但是MyClass myClass(MyClass())是一个函数,而不是一个对象。这里,MyClass()是一个指向函数的指针。我认为它应该调用复制构造函数,但它没有。为什么?

*注意:myClass如果它有空括号,我知道它是一个函数。

标签: c++

解决方案


推荐阅读