C++ 访问控制关键字:public、private、protected
在C++中,public
、private
和protected
是访问控制关键字,用于实现面向对象编程的封装特性,控制类成员的访问权限。
访问控制关键字的使用场景
1. public(公有成员)
- 在任何地方都可以访问
- 通常用于类的接口方法
- 构造函数和析构函数通常是public的
class Circle {
public:// 公有构造函数Circle(double r) : radius(r) {}// 公有接口方法double getArea() {return 3.14159 * radius * radius;}// 公有成员变量(一般不推荐)double x, y;
};
2. private(私有成员)
- 只能在类内部访问
- 通常用于隐藏实现细节
- 类的成员变量通常设为private
class BankAccount {
private:double balance; // 私有变量,外部无法直接访问public:BankAccount(double initial) : balance(initial) {}// 通过公有方法访问私有变量void deposit(double amount) {if (amount > 0) balance += amount;}double getBalance() {return balance;}
};
3. protected(保护成员)
- 在类内部和派生类中可以访问
- 主要用于继承场景
子类不能访问父类的私有成员,如果子类需要访问父类的私有成员,就必须将父类该私有成员声明为protected。
class Shape {
protected:// 派生类可以访问这些成员int width, height;public:void setDimensions(int w, int h) {width = w;height = h;}
};class Rectangle : public Shape {
public:int getArea() {return width * height; // 可以访问基类的protected成员}
};