在C++中,private
和 public
是两种访问修饰符,用于控制类成员(包括属性和方法)的访问权限。它们的主要区别在于:
-
public
访问级别:- 在类的外部和内部都可以访问
public
成员。 - 使用
public
修饰的成员,无论是在类的内部还是外部,都可以自由访问,这意味着任何人都可以从类的对象直接访问和修改这些成员。
- 在类的外部和内部都可以访问
-
private
访问级别:- 只有类的内部可以访问
private
成员。 - 使用
private
修饰的成员,仅限于类的内部访问。类的外部代码不能直接访问这些成员,这有助于隐藏和保护类的内部状态,确保外部代码不能随意修改内部数据结构。
- 只有类的内部可以访问
下面是一个简单的例子来说明这两者的用法:
cpp
class Car {
public:
int year; // 公开访问:任何人都可以直接访问和修改年份
void drive() {
cout << "Driving the car" << endl;
}
private:
double speed; // 私有访问:只能在类的内部被访问和修改
void updateSpeed(double newSpeed) {
speed = newSpeed; // 这是一个私有方法,只能在类内部被调用
}
};
int main() {
Car myCar;
myCar.year = 2020; // 正常访问
myCar.drive(); // 正常访问
// myCar.speed = 100; // 错误:speed是私有的,不能在类外部访问
// myCar.updateSpeed(100); // 错误:updateSpeed是私有的,不能在类外部访问
return 0;
}
在这个例子中,year
和 drive
方法是公开的,任何外部代码都可以访问。而 speed
属性和 updateSpeed
方法是私有的,它们只能在类 Car
的内部被访问和使用。
使用这些访问修饰符的主要目的是封装,即隐藏类的实现细节并公开一个操作接口,这有助于保护类的数据不被意外修改,同时使得类更易于使用和维护。