C++赋值运算符

赋值运算符 用于将一个值赋给一个变量。对于自定义类型,如类和结构体,你可以重载赋值运算符以定义如何将一个对象的值赋给另一个对象。

默认赋值运算符

对于类类型,默认的赋值运算符会执行成员逐一赋值(member-wise copy)。这意味着对于两个对象ab,表达式a = b;将每个成员从b复制到a

重载赋值运算符

重载赋值运算符通常有以下形式:

ReturnType ClassName::operator=(const ClassName& other);
  • ReturnType通常是ClassName&,表示赋值操作符返回对象的引用。
  • ClassName是你的类名。
  • other是作为参数传入的常量引用,表示要复制的对象。
class Point {
public:
    int x, y;

    Point& operator=(const Point& other) {
        if (this != &other) { // 防止自赋值
            x = other.x;      // 成员逐一赋值
            y = other.y;
        }
        return *this; // 返回当前对象的引用
    }
};

单例模式中的赋值运算符

在单例模式中,你通常不希望单例对象被复制或赋值。因此,赋值运算符被声明为私有或被删除:

class President {
private:
    President& operator=(const President&); // 私有且未定义,防止赋值
    // ...
};

 

posted @ 2024-08-14 12:40  Q星星  阅读(59)  评论(0编辑  收藏  举报