类方法的访问级别决定了可调用的代码类型:public:任何代码protected:类及其派生类private:仅限于类本身

C++ 类方法的访问级别
在 C++ 中,类方法的访问级别决定了哪些代码可以调用它。有三种访问级别:
- public:任何代码都可以调用。
- protected:只有类本身及其派生类可以调用。
- private:只能由类本身调用。
语法:
立即学习“C++免费学习笔记(深入)”;
// public 访问级别 public: returnType methodName(parameters); // protected 访问级别 protected: returnType methodName(parameters); // private 访问级别 private: returnType methodName(parameters);
实战案例:
考虑以下类:
class Shape {
public:
virtual double area() = 0; // 纯虚函数
virtual double perimeter() = 0; // 纯虚函数
protected:
double width;
double height;
};-
area和perimeter是纯虚函数,即没有实现的函数。它们迫使派生类实现这些函数。 -
width和height是受保护成员,因此只能由Shape类及其派生类访问。
现在,考虑以下 Rectangle 类的派生类:
class Rectangle : public Shape {
public:
Rectangle(double w, double h) : width(w), height(h) {}
double area() override { return width * height; }
double perimeter() override { return 2 * (width + height); }
private:
double width;
double height;
};-
Rectangle类继承自Shape类。 -
Rectangle类构造函数将width和height初始化为传入的参数。 -
area和perimeter函数重写了Shape类中的纯虚函数,并提供了矩形的具体实现。
通过将 width 和 height 设为私有成员,我们可以防止外部代码直接访问它们,从而提高了安全性。同时,我们还允许派生类通过受保护的访问级别访问它们,以实现必要的计算。










