c++

c++ get set支持运算符重载吗

小樊
82
2024-12-06 06:09:56
栏目: 编程语言

C++ 的 getset 访问器方法本身并不直接支持运算符重载。然而,你可以通过定义相应的友元函数来实现对运算符的重载。

例如,假设你有一个名为 MyClass 的类,其中包含一个名为 value 的私有成员变量。你可以为 MyClass 类定义 getset 访问器方法,如下所示:

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;
}

0
看了该问题的人还看了