21xrx.com
2024-12-22 21:47:44 Sunday
登录
文章检索 我的文章 写文章
C++类的三种继承方式
2023-06-24 07:10:58 深夜i     --     --
C++ 继承方式 单继承 多继承 虚继承

C++是一种面向对象编程语言,继承是面向对象编程中非常重要的概念。在C++中,继承的方式有三种:公共继承、私有继承和保护继承。

公共继承是最常见的继承方式,也是默认的继承方式。在公共继承中,子类将继承父类的所有公共成员和方法,但不会继承父类的私有成员和方法。这意味着,在子类中,我们可以访问父类中的公共成员和方法,而且子类也可以重写这些成员和方法来实现不同的行为。

私有继承是一种继承方式,其中子类将继承父类的所有成员和方法,但它们都将变成私有的。在私有继承中,子类不能访问父类的任何公共或受保护的成员或方法,这意味着这些成员和方法对子类来说是不可见的。私有继承通常用于在子类中实现特定的逻辑,而不是作为子类的主要基类。

保护继承是一种继承方式,其中子类将继承父类的所有公共和保护成员和方法,但不会继承父类的私有成员和方法。在保护继承中,子类可以访问父类的公共和保护成员和方法,但不能访问私有成员和方法。通常,保护继承用于实现继承类层次结构中的类似基类的特征。

为了理解这三种继承方式的区别,我们可以看一下下面的代码示例:


class A

public:

  int publicA;

protected:

  int protectedA;

private:

  int privateA;

;

class B : public A {

public:

  void funcB()

    publicA = 1;   // 子类中可以访问父类的公共成员

    protectedA = 2;  // 子类中可以访问父类的保护成员

    privateA = 3;   // 子类中不能访问父类的私有成员

  

};

class C : protected A {

public:

  void funcC()

    publicA = 1;   // 子类中可以访问父类的公共成员

    protectedA = 2;  // 子类中可以访问父类的保护成员

    privateA = 3;   // 子类中不能访问父类的私有成员

  

};

class D : private A {

public:

  void funcD()

    publicA = 1;   // 子类中不能访问父类的公共成员

    protectedA = 2;  // 子类中不能访问父类的保护成员

    privateA = 3;   // 子类中不能访问父类的私有成员

  

};

从上面的代码示例中,我们可以看出,B类是公共继承类,可以访问父类的所有公共和保护成员。C类是保护继承类,它可以访问父类的所有公共和保护成员。D类是私有继承类,不能访问父类的公共、受保护或私有成员。

总之,这三种继承方式各有优点和用途,需要根据具体的需求和场景来选择。在实际开发中,我们应该根据需要合理地使用各种继承方式,以实现代码的复用和优化。

  
  

评论区

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