21xrx.com
2024-09-20 00:52:59 Friday
登录
文章检索 我的文章 写文章
C++赋值构造函数简介及用法
2023-07-10 08:12:43 深夜i     --     --
C++赋值构造函数 简介 用法 对象初始化 复制对象

C++ 中的赋值构造函数是一种特殊的构造函数,它允许在对象创建完毕后再次进行赋值操作。在实际应用中,赋值构造函数广泛运用于复制类对象等需要进行对象复制的场景。

和默认构造函数一样,C++ 标准库提供了默认的赋值构造函数实现,但程序员可以通过自定义赋值构造函数来实现更个性化的对象赋值操作。

赋值构造函数的定义和语法与默认构造函数类似,只需在类的主体中定义一个带有成员变量的以“类名&”为返回类型的函数即可。例如:


class Myclass {

 public:

  Myclass(int num):number(num) {}

  Myclass(const Myclass& other)

    number = other.number;

    cout << "Copy constructor called." << endl;

  

  Myclass& operator=(const Myclass& other) {

    number = other.number;

    cout << "Assignment operator called." << endl;

    return *this;

  }

 private:

  int number;

};

上面例子中的 Myclass 类中定义了一个赋值构造函数 operator=(),该函数接收一个 Myclass 类型的参数 other,并将传入参数的成员变量 number 赋值给当前对象的 number 成员变量。最后该函数返回了当前对象的引用,以支持链式赋值操作。

当程序需要调用对象的赋值构造函数时,可以采用直接调用或隐式调用的方式:


Myclass obj1(10); // 调用 Myclass 的默认构造函数

Myclass obj2(obj1); // 显式调用 Myclass 的赋值构造函数

Myclass obj3 = obj1; // 隐式调用 Myclass 的赋值构造函数

总之,C++ 中的赋值构造函数是一个重要的语法特性,其使用场景广泛,特别是在实现复制类对象等场景时,用户可以根据自身需要自定义赋值构造函数,实现更灵活的赋值操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复