我已经为我的一个类编写了指针数据成员的复制构造函数
class person
{
public:
string name;
int number;
};
class MyClass {
int x;
char c;
std::string s;
person student;
MyClass::MyClass( const MyClass& other ) :
x( other.x ), c( other.c ), s( other.s ),student(other.student){}
};
但是当我运行这个程序时出现以下错误
错误:成员“MyClass”的额外资格“MyClass::”[-fpermissive] 我是否正确使用了复制构造函数。
最佳答案
MyClass::MyClass( const MyClass& other )
^^^^^^^^^^
仅当您在类定义之外定义主体时才需要完全限定名称。它告诉编译器这个特定的函数(恰好是你的情况下的构造函数)属于名称限定类。
当您在类定义中定义主体时,暗示该函数是您在其中定义它的类的成员,因此不需要完全限定名称。
关于c++ - 如何在C++类中正确使用复制构造函数和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973783/