在C++中,我们可以通过使用getter和setter方法来自定义属性的访问权限
#include<iostream>
class MyClass {
private:
int myProperty; // 私有属性
public:
// 构造函数
MyClass(int value) : myProperty(value) {}
// Getter 方法(公共访问权限)
int getMyProperty() const {
return myProperty;
}
// Setter 方法(仅允许修改为偶数值)
void setMyProperty(int value) {
if (value % 2 == 0) {
myProperty = value;
} else {
std::cout << "Error: Value must be an even number."<< std::endl;
}
}
};
int main() {
MyClass obj(4);
// 访问属性
std::cout << "Current property value: "<< obj.getMyProperty()<< std::endl;
// 修改属性
obj.setMyProperty(6);
std::cout << "New property value: "<< obj.getMyProperty()<< std::endl;
// 尝试设置为奇数值
obj.setMyProperty(7);
return 0;
}
在这个例子中,myProperty
是一个私有成员变量。我们提供了一个公共的getter方法getMyProperty()
来访问该属性,并提供了一个公共的setter方法setMyProperty()
来修改该属性。在setter方法中,我们添加了一个条件判断,确保只有偶数值才能被设置。这样,我们就实现了对属性访问权限的自定义。