C++实例:基类BaseClass,派生类DerivedClass
1.问题描述
定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),DerivedClass也有成员函数fn1()、fn2(),在主程序中定义一个DerivedClass的对象,分别用DerivedClass的对象以及BaseClass和DerivedClass的指针来调用fn1()、fn2()。
2.问题分析
(1)首先,我们可以得出基类为BaseClass,DerivedClass是基类的派生类,没有特别说明派生类的继承方式,因此我们默认为“公有继承(public)”。
(2)其次,基类BaseClass 和 派生类DerivedClass中均包含成员函数fn1()、fn2(),但是题目中没有指明fn1()、fn2()作用,因此我们默认为void fn1()和void fn2(),并输出任意一句提示信息。
(3)最后,题目要求在main中定义一个DerivedClass对象,分别用DerivedClass的对象以及BaseClass和DerivedClass的指针来调用fn1()、fn2()。因此定义DerivedClass对象d、指针D 和 BaseClass指针B,(名称可以自定),定义好如下所示:
DerivedClass d; //DerivedClass对象d
DerivedClass *D; //DerivedClass指针
BaseClass *B; //BaseClass指针
3.代码实现
//导入头文件
#include <iostream>
using namespace std;class BaseClass{public://构造函数BaseClass(){ }void fn1(){cout<<"BaseClass的fn1"<<endl;} void fn2(){cout<<"BaseClass的fn2"<<endl;}//析构函数~BaseClass(){ }
};class DerivedClass:public BaseClass{public://构造函数DerivedClass(){ }void fn1(){ cout<<"DerivedClass的fn1"<<endl;} void fn2(){cout<<"DerivedClass的fn2"<<endl;}//析构函数~DerivedClass(){ }
}; int main(){DerivedClass d;//DerivedClass对象dDerivedClass *D; //DerivedClass指针 BaseClass *B;//BaseClass指针//对象调用d.fn1();d.fn2();cout<<endl;//换行//指针B调用B->fn1();B->fn2();cout<<endl;//换行//指针D调用D->fn1();D->fn2();return 0;
}
4.运行结果
C++实例:基类BaseClass,派生类DerivedClass相关推荐
- 基类、派生类、虚基类、虚函数、虚析构、纯虚函数、抽象类
基类:被其它类通过继承方式作为父类继承的类称为基类:描述派生类的统一种类的方式. 派生类:通过继承其他类(并可能含有自定义成员)实现的子类:为提高代码的重用性及与同样继承于同一个父类的其它类形成统一种 ...
- C++ 类的继承,基类,派生类
继承: 当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可. 这个已有的类称为基类,新建的类称为派生类. 例: //基类class Animal {// ...
- C++中基类与派生类的构造函数和析构函数
1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...
- C++:基类和派生类
4.1 派生类的声明 继承实例如下: class Person{ //声明基类Person public:void print(){cout<<"name:"<& ...
- java基类和派生类圆_java – 当基类和派生类都具有相同名称的变量时会发生什么...
在这些类中考虑int变量: class Foo { public int a = 3; public void addFive() { a += 5; System.out.print("f ...
- python根据一个基类生成派生类_python中的封装继承多态
1.封装 类的封装可以隐藏类的实现细节,迫使用户只能通过方法去访问数据,这样就可以增强程序的安全性.接下来演示未使用封装可能出现的问题,如例所示. 在例中,运行结果输出的成绩为-68,在程序中不会有任 ...
- 派生类到基类的转换 和基类到派生类的转换
一. 基类与派生类的转换 3种继承方式(公用.保护.私有继承)中,公用派生类才是基类真正的子类型,它完整地继承了基类的功能. 不同类型数据之间在一定条件下可以进行类型的转换.基类与派生 ...
- 基类与派生类之间的转换关系
一. 派生类到基类的转换: 1.可以使用派生类指针初始化基类指针,同样也可以使用派生类的引用或对象初始化基类的引用,注意这里提到的是对象的指针和引用而不是对象本身: (但是,在使用基类指针(或引用)指 ...
- 构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...
虚基类及其派生类构造函数[1] 建立对象时所指定的类称为最远派生类. 虚基类的成员是由最远派生类的构造函数通过调用虚基类的构造函数进行初始化的. 在整个继承结构中,直接或间接继承虚基类的所有派生类,都 ...
- c++中基类与派生类中隐含的this指针的分析
先不要看结果,看一下你是否真正了解了this指针? 1 #include<iostream> 2 using namespace std; 3 4 class Parent{ 5 publ ...
最新文章
- plotly可视化绘制多图(multiplot)
- Linux网络相关、firewalld、netfilter及其5表5链、iptables语法
- java笔记之抽象类和接口
- 菜鸟教程之Microsoft Windows Powershell
- linux系统下部署go语言环境
- Ethereum 以太坊 交易数据 构建原理
- 接口自动化测试(Python+Requests+Unittest)
- ms sql server 多条件模糊查找
- 公众号 多服务器配置_多账号公众号分享的素材如何采集以及一键分发?
- 开源文本编辑器Vim的作者Bram Moolenaar推出了新的编程语言Zimbu.doc
- hint用法mysql,使用hint优化Oracle的执行计划
- 淘宝新开店铺没有营业执照怎么办
- USB3.0传输数据、解析处理和帧率计算
- 如何向App Store提交应用
- 图像识别开源_看看开源图像识别技术
- php里在调用wp,WordPress 教程:使用 WP_Http 在 WordPress 中发起 HTTP Request
- Java swing 单机版五子棋
- 如何获取个人开发者微信小程序的APPId?
- 谈谈阿里与谷歌的Java开发规范
- 渡一教育公开课web前端开发JavaScript精英课学习笔记(六)函数及作用域