为什么不调用复制构造函数?

时间:2020-08-28 06:50:56

标签: c++

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是一个函数,如果它带有空括号。

0 个答案:

没有答案