c++

c++ get set怎样防止修改

小樊
81
2024-12-06 06:40:57
栏目: 编程语言

在C++中,为了确保数据成员不被意外修改,可以使用getter和setter方法。通过将这些方法设置为私有,可以防止外部代码直接访问和修改数据成员。同时,可以在setter方法中添加一些验证逻辑,以确保数据的正确性。

以下是一个简单的示例:

#include <iostream>

class MyClass {
private:
    int myValue;

public:
    // Getter method
    int getValue() const {
        return myValue;
    }

    // Setter method
    void setValue(int newValue) {
        if (newValue >= 0) {
            myValue = newValue;
        } else {
            std::cout << "Invalid value, not setting." << std::endl;
        }
    }
};

int main() {
    MyClass obj;
    obj.setValue(10); // Valid value
    std::cout << "Value: " << obj.getValue() << std::endl;

    obj.setValue(-5); // Invalid value
    std::cout << "Value: " << obj.getValue() << std::endl;

    return 0;
}

在这个示例中,myValue数据成员被设置为私有,因此无法直接从外部访问。我们提供了getValue()setValue()方法来获取和设置myValue的值。在setValue()方法中,我们添加了一个简单的验证逻辑,确保传入的值是非负数。如果传入的值无效,我们将不会修改myValue

0
看了该问题的人还看了