在我创建的类上运行测试时遇到了一些奇怪的事情。
当我打电话给班级的常规构造函数时:
MyClass::MyClass(const Type1& arg1, const Type2& arg2);
以下列方式:
MyClass(arg1, arg2);
效果很好。
但是当我调用复制构造函数时:
MyClass::MyClass(const MyClass& other);
以同样的方式:
MyClass(myClassInstance);
然后编译器说:"重新声明' MyClass myClassInstance'";
答案 0 :(得分:1)
MyClass(myClassInstance);
你不是在这里调用复制构造函数,编译器假设你的意思,
int a;
int (a);
你想要的是
MyClass anotherInstance(myClassInstance);
或
MyClass {myClassInstance};
答案 1 :(得分:0)
您要做的是,创建一个 MyClass 的实例,并将该对象作为创建新实例的参数传递(使用复制构造函数)。
p_explode(string_delimiter, string_string, int_number_values_each_page)