在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方法中,我們添加了一個條件判斷,確保只有偶數值才能被設置。這樣,我們就實現了對屬性訪問權限的自定義。