C++赋值运算符

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

默认赋值运算符

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

重载赋值运算符

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

1
ReturnType ClassName::operator=(const ClassName& other);
  • ReturnType通常是ClassName&,表示赋值操作符返回对象的引用。
  • ClassName是你的类名。
  • other是作为参数传入的常量引用,表示要复制的对象。
1
2
3
4
5
6
7
8
9
10
11
12
class Point {
public:
    int x, y;
 
    Point& operator=(const Point& other) {
        if (this != &other) { // 防止自赋值
            x = other.x;      // 成员逐一赋值
            y = other.y;
        }
        return *this; // 返回当前对象的引用
    }
};

单例模式中的赋值运算符

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

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

 

posted @   Q星星  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示