c++ - 如何在C++类中正确使用复制构造函数和赋值

标签 c++ copy-constructor assignment-operator

我已经为我的一个类编写了指针数据成员的复制构造函数

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/

相关文章:

c++ - 为什么我的函数不记录最小的答案?

C++ 在 char(头文件)之前期望主表达式

java - java中为什么需要复制构造函数以及什么时候应该使用复制构造函数

c++ - 构造函数和常量引用

c++ - 转换构造函数说明

Java 赋值运算符行为与 C++

c++ - 错误 LNK1169 找到一个或多个多次定义的符号

c++ - 连接MySQL时出现段错误

c++ - 初始化类对象数组

r - 为什么不应该在函数中使用 "="R 运算符?