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