在C++中,封裝性是指將數(shù)據(jù)(屬性)和操作數(shù)據(jù)的方法(函數(shù))包裝在一起,從而隱藏了對(duì)象內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。為了確保封裝性并避免數(shù)據(jù)篡改,可以采取以下措施:
class MyClass {
private:
int myData;
public:
int getData() const {
return myData;
}
void setData(int newData) {
myData = newData;
}
};
class MyClass {
private:
int myData;
public:
int getData() const {
return myData;
}
void setData(int newData) {
myData = newData;
}
};
class MyClass {
private:
int myData;
public:
inline int getData() const {
return myData;
}
inline void setData(int newData) {
myData = newData;
}
};
class MyClass {
private:
int myData;
friend void myFriendFunction(MyClass& obj);
};
void myFriendFunction(MyClass& obj) {
obj.myData = 42; // 可以訪問私有成員
}
class MyClass {
private:
int myData;
public:
void setData(int newData) {
if (newData >= 0 && newData <= 100) {
myData = newData;
} else {
throw std::out_of_range("Data out of range");
}
}
};
通過遵循這些原則和實(shí)踐,可以在C++中實(shí)現(xiàn)良好的封裝性并避免數(shù)據(jù)篡改。