千家信息网

C++类继承怎么应用

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容主要讲解"C++类继承怎么应用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++类继承怎么应用"吧!类的继承会首先寻找基类,若基类未实现,则会寻
千家信息网最后更新 2025年01月19日C++类继承怎么应用

本篇内容主要讲解"C++类继承怎么应用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++类继承怎么应用"吧!

类的继承会首先寻找基类,若基类未实现,则会寻找派生类的函数

1. class继承,函数不继承

#include  class Base{public:  Base(){}  ~Base(){}   int a;  void setA()  {    a = 1;  }}; class A:public Base{public:  A(){}  ~A(){}     void setA()  {    a = 2;  }   }; class B:public Base{public:  B(){}  ~B(){}     void setA()  {    a = 3;  }}; int main(){  A *ax = new A();  B *bx = new B();  Base *aClass = ax;  Base *bClass = bx;  aClass->setA();  bClass->setA();   printf("a value of a %d\n", aClass->a);  printf("a value of b %d\n", bClass->a);  return 0;}

2. 函数和Class都继承

#include  class Base{public:  Base(){}  ~Base(){}   int a;  virtual void setA()  {    a = 1;  }}; class A:public Base{public:  A(){}  ~A(){}     virtual void setA()  {    a = 2;  }   }; class B:public Base{public:  B(){}  ~B(){}     virtual void setA()  {    a = 3;  }}; int main(){  A *ax = new A();  B *bx = new B();  Base *aClass = ax;  Base *bClass = bx;  aClass->setA();  bClass->setA();   printf("a value of a %d\n", aClass->a);  printf("a value of b %d\n", bClass->a);  return 0;}

运行结果:注意派生类中可以不写virtual,最好写上,以辨别是函数继承

若将2中基类的函数写为纯虚函数,运行的结果一样,但是如果基类是纯虚函数,派生类必须实现相应的函数。

class Base{public:  Base(){}  ~Base(){}   int a;  virtual void setA()=0;   };

3. 类A中不有函数,则继承自基类

class A:public Base{public:  A(){}  ~A(){}   };

到此,相信大家对"C++类继承怎么应用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0