C++ C++;:复制构造函数不';没有左值调用时无法工作

C++ C++;:复制构造函数不';没有左值调用时无法工作,c++,constructor,copy-constructor,C++,Constructor,Copy Constructor,在对我创建的类运行测试时,我遇到了一些奇怪的事情 当我调用类的常规构造函数时: MyClass::MyClass(const Type1& arg1, const Type2& arg2); MyClass::MyClass(const MyClass& other); 以下列方式: MyClass(arg1, arg2); 它工作得很好 但是当我调用复制构造函数时: MyClass::MyClass(const Type1& arg1, const Typ

在对我创建的类运行测试时,我遇到了一些奇怪的事情

当我调用类的常规构造函数时:

MyClass::MyClass(const Type1& arg1, const Type2& arg2);
MyClass::MyClass(const MyClass& other);
以下列方式:

MyClass(arg1, arg2);
它工作得很好

但是当我调用复制构造函数时:

MyClass::MyClass(const Type1& arg1, const Type2& arg2);
MyClass::MyClass(const MyClass& other);
以同样的方式:

MyClass(myClassInstance);
然后编译器说:“重新声明‘MyClass myClassInstance’

你不是在这里调用复制构造函数编译器假定你的意思是

int a;
int (a);
你想要的是

MyClass anotherInstance(myClassInstance);


您要做的是,创建一个MyClass的实例,并将该对象作为创建新实例的参数传递(使用复制构造函数)


是否要创建临时文件?使用
{}
语法以避免意外的解析。请发布一篇文章,因为代码片段无助于诊断此问题。您是指
MyClass变量_name(myClassInstance)
MyClass obj_1(arg1, arg2);
MyClass obj_2(obj_1);