我是靠谱客的博主 微笑戒指,最近开发中收集的这篇文章主要介绍C++类继承 继承后函数的值实现详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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 %dn", aClass->a);
  printf("a value of b %dn", bClass->a);
  return 0;
}

运行结果:

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 %dn", aClass->a);
  printf("a value of b %dn", 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++类继承 继承后函数的值实现详解的全部内容,希望文章能够帮你解决C++类继承 继承后函数的值实现详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部