C++赋值运算符
赋值运算符 = 用于将一个值赋给一个变量。对于自定义类型,如类和结构体,你可以重载赋值运算符以定义如何将一个对象的值赋给另一个对象。
默认赋值运算符
对于类类型,默认的赋值运算符会执行成员逐一赋值(member-wise copy)。这意味着对于两个对象a和b,表达式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&); // 私有且未定义,防止赋值
// ...
};
浙公网安备 33010602011771号