在C++中,沒有內(nèi)置的“屬性”(property)機(jī)制,但是可以通過定義getter和setter方法來模擬屬性的行為
#include<iostream>
class MyClass {
private:
int myVar;
public:
// 構(gòu)造函數(shù)
MyClass(int value) : myVar(value) {}
// Getter 方法
int getMyVar() const {
return myVar;
}
// Setter 方法
void setMyVar(int value) {
if (value >= 0) {
myVar = value;
} else {
std::cerr << "Invalid value, should be non-negative."<< std::endl;
}
}
};
int main() {
MyClass obj(10);
// 使用 getter 方法獲取值
std::cout << "Value of myVar: "<< obj.getMyVar()<< std::endl;
// 使用 setter 方法設(shè)置新值
obj.setMyVar(20);
std::cout << "New value of myVar: "<< obj.getMyVar()<< std::endl;
// 嘗試設(shè)置一個無效值
obj.setMyVar(-5);
return 0;
}
在這個例子中,我們創(chuàng)建了一個名為MyClass
的類,其中包含一個私有成員變量myVar
。然后,我們定義了公共的getter和setter方法來訪問和修改這個變量。在setter方法中,我們還添加了一個簡單的驗(yàn)證,以確保傳入的值是非負(fù)數(shù)。
這種方法允許我們在不直接暴露類的內(nèi)部實(shí)現(xiàn)的情況下,控制對成員變量的訪問和修改。同時,也可以在getter和setter方法中添加額外的邏輯,例如觸發(fā)事件、驗(yàn)證輸入等。