IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ 多态公有继承 -> 正文阅读

[C++知识库]C++ 多态公有继承

C++ 多态公有继承
即希望同一个方法在派生类和基类中的行为是不同的。换句话来说,方法的行为应取决于调用该方法的对象。这种较复杂的行为称为多态–具有多种形态,即同一个方法的行为随上下文而异。有两种重要的机制可用于实现多态公有继承:
1. 在派生类中重新定义基类的方法。
2. 使用虚方法。

以下中基类为Brass, 派生类为:BrassPlus

class Brass 
{
	public:
		virtual void withdraw(double amt);
		virtual void ViewAcct() const;
		virtual ~Brass();
}

class BrassPlus 
{
	public:
		virtual void withdraw(double amt);
		virtual void ViewAcct() const;
		void ResetMax(double n);
}

1.基类中的方法加vitual声明为虚函数,在派生类中使用关键字vitual来指出哪些函数是虚函数也不失一个好办法。
2. 在基类中声明了一个虚析构函数。这样做是为了确保释放派生对象时,按正确的顺序调用析构函数。
3. 虚函数的使用:如果方法是通过引用或指针而不是对象调用的,它将确定使用哪一种方法。如果没有使用关键字vitual,程序将根据引用类型或指针类型选择方法;如果使用了vitual,程序将根据引用或指针指向的对象的类型来选择方法。
如果viewAcct()不是虚的,则程序的行为如下:
Brass dom(“Dominic Banker”, 11224, 4183.45);
BrassPlus dot(“Dorothy Banker”, 12118, 2592.00);

Brass& b1_ref = dom; // dom,dot是对象调用
Brass& b2_ref = dot;
b1_ref.ViewAcct(); // use Brass:: ViewAcct()
b2_ref.ViewAcct(); // use Brass:: ViewAcct()

如果viewAcct()不是虚的,则程序的行为如下:
Brass dom(“Dominic Banker”, 11224, 4183.45);
BrassPlus dot(“Dorothy Banker”, 12118, 2592.00);

Brass& b1_ref = dom; // dom,dot是对象调用
Brass& b2_ref = dot;
b1_ref.ViewAcct(); // use Brass:: ViewAcct()
b2_ref.ViewAcct(); // use BrassPlus:: ViewAcct()

这里两个引用类型都是Brass, 但是b2_ref引用的是一个BrassPlus对象,所以使用的是BrassPlus::ViewAcct()。
4.基类的指针也可以指向基类对象,也可以指向派生类对象。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-27 12:39:41  更:2021-10-27 12:42:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:25:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码