在主函数中声明一个DerivedClass的对象,分别用DerivedClass的对象以及BaseClass和DerivedClass的指针来调用fn1(),fn2(),观察运行结果。

#include<iostream>using namespace std;class BaseClass
{
public:void fn1() const { cout<<"调用基类函数fn1()"<<endl; }void fn2() const { cout<<"调用基类函数fn2()"<<endl; }
};class DerivedClass :virtual public BaseClass
{
public:void fn1() const { cout<<"调用派生类函数fn1()"<<endl; }void fn2() const { cout<<"调用派生类函数fn2()"<<endl; }
};int main()
{DerivedClass a;a.fn1();a.fn2();BaseClass *c = &a;//对象指针在使用前一定要先进行初始化,让它指向一个已经声明过的对象然后再使用//BaseClass *c; 错误,程序崩溃c->fn1();c->fn2();DerivedClass *b = &a;b->fn1();b->fn2();
}


注意:在运用指针调用fn1(),fn2()时,一定要先对指针进行初始化,让它指向一个已经声明过的对象,然后在使用,否则直接使用会使得程序崩溃。通过对象指针可以访问到对象的公有成员。

定义一个基类BaseClass,从它派生出类DerivedClass。BaseClass有成员函数fn1(),fn2(),DerivedClass也有成员函数fn1(),fn2()。相关推荐

  1. 实验6.2 定义一个基类BaseClass,观察构造函数和析构函数的执行情况。

    题目 定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况. AC的C++代码如下: #include<iostre ...

  2. 虚函数之定义一个基类Shape,在此基础上派生出Rectangle和Circle再使用Rectangle类创建一个派生类Square。

    定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea( )函数计算对象的面积,再使用Rectangle类创建一个派生类Square.将getArea()改造 ...

  3. 定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生

    定义一个基本的银行账户类.在基本账户类的基础上派生出1年期定期账户.2年期定期账户.3年期定期账户和5年期定期账户.定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象.让每个指针指向一个派生 ...

  4. c++程序设计十二章第5题5 写一个程序,定义抽象基类shape由它派生出5个派生类:Circle(圆形),Square(正方形),Rectangle(矩形),Trapezoid(梯形),Tr

    写一个程序,定义抽象基类shape由它派生出5个派生类:Circle(圆形),Square(正方形),Rectangle(矩形),Trapezoid(梯形),Triangle(三角形).用虚函数分别计 ...

  5. 实验6.1 定义一个基类Animal

    题目 定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试 ...

  6. 定义一个集合类setColour,要求元素为枚举类型值

    目录 题目 前言 集合的实现的两种方法: 枚举类型: 方式一 总体实现原理 各函数实现 构造函数 拷贝构造函数和赋值运算符重载 ">>"的 重载 "<& ...

  7. 定义一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有getArea( )函数计算对象的面积,再使用Rectangle类创建一个派生类Square。

    输入格式 Rectangle的长和宽.Circle的半径.Square的边长 输出格式 Rectangle.Circle和Square对应的面积.四舍五入到整数 输入样例 3 7 6 4 2.1 3. ...

  8. asp.net 的page 基类页面 做一些判断 可以定义一个基类页面 继承Page类 然后重写OnPreLoad事件...

    public class BasePage:Page protected override void OnPreLoad(EventArgs e) {      base.OnPreLoad(e); ...

  9. java如何枚举定义一个数组_Java中如何将字符枚举类变成一个数组

    ( light. class ); currenummap.put(light. red , " 红灯 " ); currenummap.put(light. green , &q ...

  10. 请编写一个抽象类shape,在此基础上派生出类rectangle和circle。二者都有计算对象面积的函数getarea(),计算对象的周长的函数getperim();

    具体代码如下: #include <iostream> using namespace std; class shape{ public:virtual double getarea()= ...

最新文章

  1. 打破Transformer宿命,新秀VOLO开源!横扫CV多项记录,首个超越87%的模型
  2. 超级大汇总!200多个最好的机器学习、NLP和Python教程
  3. java 反射获取属性名和值_阿里P8架构师核心知识点整理:Java基础+spring原理+微服务+算法...
  4. python批量生成,用python批量生成简单的xml文档
  5. php识别名片,用户信息名片怎么利用PHP实现自动生成
  6. 如何绘制逻辑图— 4. 要素的属性:黑盒与白盒
  7. 静态内部类 java 1614958017
  8. TensorFlow2.1正式版发布!最后一次支持Python2,进一步支持TPU
  9. python——extend用新序列扩展其他列表
  10. 不要奢望.NET能够跨平台
  11. java展开式的菜单_ListView点击Item展开菜单实现代码详解
  12. 【Linux】04 软链接和硬链接
  13. linux c获取进程状态,Linux C 获取进程的退出值
  14. 5G接入网与基站演进
  15. 上twitter_如何在Twitter上更改您的显示名称
  16. 对HackTheBox里面的Bastion测试
  17. 网络攻击与防御-常用网络命令的使用
  18. GitLab-CI持续集成(CI)的介绍与运行机制
  19. css改变纯色图片颜色的几种方式
  20. OSChina 周三乱弹 ——程序员下班后总是不关电脑原因竟然是这样

热门文章

  1. tas5424_TAS5424 Datasheet(数据表) 16 Page - Texas Instruments
  2. 【3D动态思维导图制作软件】万彩脑图大师教程 | 添加声音跟字幕
  3. 什么是一级域名?一级域名和二级域名的区别是什么?
  4. 2019CBA全明星周末大幕落下 南方明星队大比分获胜
  5. 超链接 qq群一键添加
  6. Network的简单介绍(在爬虫中经常用到)
  7. 读headFirst设计模式 - 装饰者模式
  8. 优化 | 线性化:两个0-1变量相乘的线性化
  9. Windows10关闭自动更新
  10. 利用Bootstrap框架制作WordPress自适应主题