C++类继承的示例分析

这篇文章将为大家详细讲解有关C++类继承的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

汉川ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!

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

1. class继承,函数不继承

#include <stdio.h>
 
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;
}

运行结果:

C++类继承的示例分析

2. 函数和Class都继承

#include <stdio.h>
 
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,最好写上,以辨别是函数继承

C++类继承的示例分析

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

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

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

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

结果为:

C++类继承的示例分析

关于“C++类继承的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

新闻标题:C++类继承的示例分析
网站链接:https://www.cdcxhl.com/article26/iisjcg.html

成都网站建设公司_创新互联,为您提供服务器托管外贸网站建设用户体验响应式网站外贸建站品牌网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化