21xrx.com
2024-11-05 20:34:12 Tuesday
登录
文章检索 我的文章 写文章
C++中的protected成员
2023-07-08 12:38:22 深夜i     --     --
C++ protected 成员

C++中的protected成员是一种访问控制权限,用于限制类外部成员对类内部数据成员和成员函数的访问。

protected成员与public成员类似,但是protected成员对于类外部的成员只是保护,并不允许直接访问,而只能通过继承该类并在子类中访问protected成员,或者通过类的友元函数来访问protected成员。

在使用protected成员时,需要注意以下几点:

1. protected成员可以在类的成员函数和子类中进行访问。而在类外部的函数中无法访问protected成员。

2. protected成员可以被同类中的其他成员访问,这与private成员是不同的。

3. 在继承类中,protected成员仍然是被保护的,但是可以被继承类的成员函数和继承类的对象直接访问。

下面是一个简单的示例代码,展示了如何使用protected成员。


class Shape {

  protected:

   int width;

   int height;

  public:

   void setWidth(int w)

     width = w;

   

   void setHeight(int h)

     height = h;

   

};

class Rectangle: public Shape {

  public:

   int getArea() {

     return (width * height);

   }

};

int main( ) {

  Rectangle Rect;

  Rect.setWidth(5);

  Rect.setHeight(7);

  // 输出矩形的面积

  cout << "矩形的面积:" << Rect.getArea() << endl;

  return 0;

}

在上面的示例代码中,我们定义了一个Shape类,并将width和height成员定义为protected成员。接着,我们定义了一个Rectangle类,该类继承自Shape类,并定义了一个getArea函数来获取矩形的面积。在getArea函数中,我们可以直接访问Shape类的protected成员width和height。

最后,在main函数中,我们创建了一个Rectangle对象,并调用了setWidth和setHeight函数来设置矩形的宽度和高度,再通过调用getArea函数来计算并输出矩形的面积。

通过上面的示例代码,我们可以看到,使用protected成员可以帮助我们实现更为严密的封装和继承,避免因为成员的直接访问导致程序发生错误或意外的结果。因此,在进行类的设计时应该合理地使用protected成员,以保证程序的稳定性和可维护性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复