21xrx.com
2024-11-25 13:07:35 Monday
登录
文章检索 我的文章 写文章
C++中的两种继承方式
2023-07-03 08:34:51 深夜i     --     --
C++ 继承 两种方式

C++是广泛使用的编程语言,继承是C++中最重要的概念之一。继承允许从一个已经存在的类创建一个新的类,新类将继承老类的特征和属性。C++中有两种继承方式:公有继承和私有继承。

公有继承

公有继承是最常用的继承方式,这种方式允许新类从老类继承公有成员和方法,公有成员是从类定义中的公有访问说明符定义的。公有继承意味着新类可以访问公有成员和方法,同时新类可以添加新的公有成员和方法。下面是公有继承的例子:


class Shape{

  public:

    void setWidth(int w)

      width = w;

    

    void setHeight(int h)

      height = h;

    

  protected:

    int width;

    int height;

};

class Rectangle: public Shape{

  public:

    int getArea(){

      return width*height;

    }

};

在上面的例子中,Rectangle类公有继承Shape类,因此它可以访问Shape类中的公有成员函数setWidth和setHeight,在Rectangle类中,我们扩展Shape类的方法,添加了一个公有成员函数getArea,该函数用于计算矩形的面积。因此,我们可以使用新的Rectangle类来计算矩形的面积。

私有继承

私有继承是另一种继承方式,这种方式与公有继承略有不同,新类从老类继承了私有成员和方法。私有成员是从类定义中的私有访问说明符定义的。私有继承意味着新类不能访问老类的公有成员和方法,新类只能通过老类公有成员和方法间接使用私有成员和方法。下面是私有继承的例子:


class Human{

  public:

    void setName(string n)

      name = n;

    

  private:

    string name;

};

class Student: private Human{

  public:

    void study()

      cout << name << " is studying." << endl;

    

};

在上面的例子中,Student类私有继承Human类,因此它无法直接访问Human类中的公有成员函数setName,但是它可以间接使用私有成员函数setName,通过公有成员函数study,因为Student类继承了私有属性name。这个例子简要地说明了私有继承的意义。

总结

C++中的继承是一种很强大的语言特性,它允许从一个类到另一个类的复制和扩展。公有继承和私有继承是两种常见的方式,它们在使用时需要注意不同的语法和语义。新手在继承时应该谨慎操作,以确保结果正常运行,并避免访问未定义的属性和方法,这样就能够高效地使用这种有用的编程技巧。

  
  

评论区

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