C++ 的 get
和 set
访问器方法本身并不直接支持运算符重载。然而,你可以通过定义相应的友元函数来实现对运算符的重载。
例如,假设你有一个名为 MyClass
的类,其中包含一个名为 value
的私有成员变量。你可以为 MyClass
类定义 get
和 set
访问器方法,如下所示:
class MyClass {
private:
int value;
public:
MyClass(int val) : value(val) {}
int get() const {
return value;
}
void set(int val) {
value = val;
}
};
现在,你可以通过定义友元函数来重载 operator+
,以便可以对 MyClass
对象执行加法操作。例如:
class MyClass {
private:
int value;
public:
MyClass(int val) : value(val) {}
int get() const {
return value;
}
void set(int val) {
value = val;
}
friend MyClass operator+(const MyClass& lhs, const MyClass& rhs);
};
MyClass operator+(const MyClass& lhs, const MyClass& rhs) {
return MyClass(lhs.get() + rhs.get());
}
这样,你就可以使用 operator+
对 MyClass
对象执行加法操作,例如:
int main() {
MyClass a(3);
MyClass b(4);
MyClass c = a + b; // 使用重载的运算符
return 0;
}