在C++中,封装性是指将数据(属性)和操作数据的方法(函数)包装在一起,从而隐藏了对象内部的实现细节。为了确保封装性并避免数据篡改,可以采取以下措施:
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");
}
}
};
通过遵循这些原则和实践,可以在C++中实现良好的封装性并避免数据篡改。