赋值运算符 =
用于将一个值赋给一个变量。对于自定义类型,如类和结构体,你可以重载赋值运算符以定义如何将一个对象的值赋给另一个对象。
默认赋值运算符
对于类类型,默认的赋值运算符会执行成员逐一赋值(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&); // 私有且未定义,防止赋值 // ... };
标签:ClassName,对象,C++,运算符,other,operator,赋值 From: https://www.cnblogs.com/qhj384343045-/p/18358689