为D1定义一个f()函数,重做练习1-3,并解释其结果

news2024/11/30 7:41:49

运行代码:

//为D1定义一个f()函数,重做练习1-3,并解释其结果
#include"std_lib_facilities.h"
//----------------------------------------------------------------------
//定义B1类。
class B1
{
public:
	virtual void vf() { cout<< "B1::vf()\n"; }
	void f() { cout<< "B1::f()\n"; }
};
//----------------------------------------------------------------------
//定义派生自B1的D1类
class D1 : public B1
{
public:
	void vf() { cout << "D1::vf()\n"; }
	void f() { cout << "D1::f()\n"; }
};
//-----------------------------------------------------------------------
//定义一个B1的引用
void call( B1& b1)
{
	b1.vf();
	b1.f();
}
//-----------------------------------------------------------------------
int main()
try{
	B1 b1;
	b1.vf();
	b1.f();

	D1 d1;
	d1.vf();
	d1.f();

	call(d1);
}
catch (exception& e) {
	cerr << "error:" << e.what() << '\n';
	keep_window_open();
	return 1;
}
catch (...) {
	cerr << "Oops:unknown exception!\n";
	keep_window_open();
	return 2;
}
//-----------------------------------------------------------------------

运行结果:

运行结果的解释:

每个类型的对象调用自己类型的函数;当函数参数为基类,而调用时参数为其派生类,则如果有虚函数的话,调用被覆盖的虚函数。如果没有虚函数,则调用基类函数。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/741167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四章 数学知识(二)——欧拉函数,快速幂,扩展欧与中国剩余定理

文章目录 欧拉函数线性筛求欧拉函数欧拉定理 快速幂逆元 扩展欧几里得中国剩余定理扩展中国剩余定理 欧拉函数练习题873. 欧拉函数874. 筛法求欧拉函数 快速幂练习题875. 快速幂876. 快速幂求逆元 扩展欧练习题877. 扩展欧几里得算法878. 线性同余方程 中国剩余定理练习题204. …

Linux进程信号(一)

信号产生 1.信号基础知识2.初步认识信号3.signal函数4.技术应用角度的信号5.调用系统函数向进程发信号6.由软件条件产生的信号7.硬件异常产生信号8.core &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#x1f…

从CoCo到喜茶,新茶饮品牌领悟出海的“九阴真经”了吗?

炎炎夏日里&#xff0c;一杯冰凉的奶茶和果茶受到了更多追捧。但是&#xff0c;中国新茶饮品牌却站在了一个十字路口。 随着新茶饮迈入“万店时代”&#xff0c;国内市场已经出现了明显的内卷现象&#xff0c;头部品牌之间的竞争日趋激烈&#xff0c;中小品牌的生存空间被挤压…

OpenGL的学习记录(一)(一些基本概念)

1.OpenGL是什么&#xff1f; OpenGL是一组各个GPU厂家一起遵循的约定。 2.GLFW&#xff0c;GLAD分别是什么&#xff1f; GLFW解决系统层面的不同&#xff0c;是我们与系统之间的隔离&#xff0c;如&#xff08;创建窗口&#xff0c;定义上下文&#xff0c;处理用户输入&#x…

数据结构--树和森林的遍历

数据结构–树和森林的遍历 树的先根遍历 void PreOrder(TreeNode* R) {if (R ! NULL){visit(R);while (R还有下一个子树T)PreOrder(T);} }树和二叉树的转化后》 树的先根遍历序列与这棵树相应二叉树的先序序列相同。 \color{red}树的先根遍历序列与这棵树相应二叉树的先序序列相…

txt文本筛选—python操作

需求&#xff1a;若文档中某行最后一列内容为0&#xff0c;则删除该行&#xff0c;否则保留该行内容&#xff0c;并将筛选后的内容保存到新的文本文档中。 # 读取原始txt文件 with open(depth_values.txt, r) as file:lines file.readlines()# 过滤掉第三列内容为0的行 filter…

WIFISKY-7层流控路由器 后台任意命令执行漏洞复现

这个漏洞相当于是两个漏洞的结合&#xff0c;首先是弱口令漏洞 admin/admin 我们成功登录后台之后才能进行任意命令执行漏洞的操作&#xff0c;我们登录之后找到系统维护-系统控制台 然后我们使用命令拼接的操作来实现任意命令执行的操作 ifconfig & cat /etc/passwd

自定义seg_decoder组件并创建Nios系统(二)

3.搭建Nios Ⅱ系统 3.1添加组件 系统会自动添加一个clk的clock source组件作为时钟组件&#xff0c;可直接使用该组件作为系统时钟 添加Nios Ⅱ处理器&#xff0c;将Nios Processor组件设置框中Nios Core选择Nios Ⅱ/f&#xff08;报错先不管&#xff09; 添加On-chip Memory…

揭秘未来:AI、自然资源与时空大数据的完美结合!JNPF快速开发平台引领无限潜能!

前言 在当今数智时代&#xff0c;人工智能&#xff08;AI&#xff09;的应用正以前所未有的方式改变着各个领域的发展路径。尤其在融合自然资源、时空大数据的领域&#xff0c;AI呈现出了崭新的形式&#xff0c;展现着巨大的潜力与前景。 技术的发展离不开数据的支持 随着人工…

【STM32MP135】移除stm32mp135d-atk-u-boot.dtsi设备树config节点,否则会进入fastboot下载模式

文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk-u-boot.dtsi

TVS二极管原理

在管子两端的电压大于一定值时&#xff0c;TVS管被反向击穿&#xff0c;瞬间形成一个导通回路&#xff0c;将管子两端的大电流导出&#xff0c;并且将管子两段的电压钳制在一个固定电压&#xff0c;进而保护和它并联的电路。 挑选TVS管先看VRWM&#xff0c;尽量与最大工作电压接…

洛谷:P5018 对称二叉树 ← NOIP2018 普及组T4

【题目来源】https://www.luogu.com.cn/problem/P5018https://www.acwing.com/problem/content/478/【题目描述】一棵有点权的有根树如果满足以下条件&#xff0c;则被轩轩称为对称二叉树&#xff1a; 1.二叉树&#xff1b; 2.将这棵树所有节点的左右子树交换&#xff0c;新树和…

关于Python的Numpy库reshape()函数的用法

1.介绍 更改数组的形状&#xff0c;不改变原数组 2.语法 a np.reshape(mat, newshape, order ‘C’) a : newshape形状的新数组 mat : 原数组 newshape&#xff1a;(1, 2)/ 1, 2 都可以改为1行2列的数组 order&#xff1a;读取原数组的规则&#xff0c;默认为C&#xff08;…

Go语言精进之路读书笔记—第三章 声明、类型、语句与控制结构(五)map

map 是啥&#xff1f; 无序的 key value 键值对。 创建变量有两种方式&#xff1a; 基本操作&#xff1a; 插入数据&#xff1a; 获取数据&#xff1a; 查找和数据读取&#xff1a; comma ok 查找法, 被称为最佳实践。 获取value 删除数据 遍历数据 想要有序的需要这样做&a…

CSS 沿着同一个方向旋转

主要解决旋转360后倒转的问题&#xff0c;沿着一个方向旋转&#xff0c;而不是倒回去重新开始。 效果 源码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>同方向旋转</title><script src"https://dp.rc1…

【STM32MP135】修复EMMC模式启动时,uboot启动识别为usb0设备问题

文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk.dts 文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/configs/stm32mp13_defconfig

ChatGLM 实践赛之学术工具创意开发丨智谱 AI × 和鲸科技

2022 年底以来&#xff0c;LLM 大规模语言模型备受瞩目。今年 3 月中旬&#xff0c;智谱 AI 与清华大学强强联合&#xff0c;重磅发布了 ChatGLM-6B 开源模型。截止 6 月 24 日&#xff0c;该模型的下载量超过三百万人次&#xff0c;并在 Hugging Face&#xff08;HF&#xff0…

jdbc中jdbcTemplate的事务问题

jdbcTemplate的增删改都用 update 查询用queryForList 1. 2. 3.虽然事务未提及也可以查到对应的数据

优思学院|六西格玛全面入门指南

I. 引言 六西格玛的定义 六西格玛&#xff08;Six Sigma&#xff09;是一种基于数据、以客户为导向、不断改进的方法论&#xff0c;用于提高组织中过程和产品的质量。六西格玛旨在消除缺陷&#xff0c;减少过程中的变异性&#xff0c;从而提高客户体验&#xff0c;并增加组织…

pip install visdom时报错

在envs所在环境下pip install visdom报如下错误&#xff1a; 解决方法&#xff0c;换源&#xff1a; pip install visdom -i https://pypi.tuna.tsinghua.edu.cn/simple