21xrx.com
2024-12-22 16:43:49 Sunday
登录
文章检索 我的文章 写文章
C++的三种继承方式
2023-07-13 15:46:10 深夜i     --     --
C++ 继承方式 单继承 多继承 虚继承

C++是一种面向对象的编程语言,它支持三种继承方式:公有继承、私有继承和保护继承。下面将详细介绍这三种继承方式的特点和用法。

1. 公有继承

公有继承是最常用的继承方式,它可以将一个类的公有成员函数和公有成员变量继承给另一个类。如果一个类要从另一个类公有继承,那么在定义时需要使用关键字“public”。例如:


class A {

public:

  void func1();

  int data1;

};

class B: public A {

public:

  void func2();

  int data2;

};

上面的代码中,class B 从 class A 公有继承。因此,class B 继承了 class A 的成员函数 func1() 和成员变量 data1,同时定义了自己的成员函数 func2() 和成员变量 data2。

2. 私有继承

私有继承用于实现“has-a”关系,它可以将一个类的成员函数和成员变量私有继承给另一个类。如果一个类要从另一个类私有继承,那么在定义时需要使用关键字“private”。例如:


class A {

public:

  void func1();

  int data1;

};

class B: private A {

public:

  void func2();

  int data2;

};

上面的代码中,class B 从 class A 私有继承,因此,class B 继承了 class A 的成员函数 func1() 和成员变量 data1,但是这些成员只能在 class B 中使用。外部无法访问 class B 中继承的 class A 的成员。

3. 保护继承

保护继承也是一种实现“has-a”关系的方式,它可以将一个类的成员函数和成员变量保护继承给另一个类。如果一个类要从另一个类保护继承,那么在定义时需要使用关键字“protected”。例如:


class A {

public:

  void func1();

  int data1;

};

class B: protected A {

public:

  void func2();

  int data2;

};

上面的代码中,class B 从 class A 保护继承,因此,class B 继承了 class A 的成员函数 func1() 和成员变量 data1,这些成员可以在 class B 以及 class B 的派生类中访问。

以上就是 C++ 的三种继承方式。开发者可以根据实际需求选择合适的继承方式,来实现代码的复用和优化。

  
  

评论区

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