c++,父类引用指向子类对象,虚函数

2023-11-14

#include<iostream.h>


class Father
{
public:
	Father()
	{
		f = 1;
	}
	
	void print()
	{
		cout<<"f = "<<f<<endl;
	}
public:
	int f;
};

#include<iostream.h>
#include "Father.cpp"
class Son : public Father
{
public:
	Son():Father()
	{
		s = 2;
	}

	void print()
	{
		cout<<"s = "<<s<<endl;
	}
public:
	int s;
};

int main()
{
	Son s;
	s.print();//输出s = 2
	Father& f = s;//这里如果直接用值,就是把“&”去掉,即使使用virtual也不会调用子类的方法,原因待解!
	f.print();//输出父类 f=1

	f = s;//父类引用指向子类对象
	
	f.print();//这里输出 f = 1;和java不一样,java里面则直接调用子类的方法,但是这里不是,这里调用的还是父类的,要让其自动调用子类的方法则需要将方法设置为虚函数,加关键字virtual
        ((Son&)f).print();//强制转换,输出 s = 2  

	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++,父类引用指向子类对象,虚函数 的相关文章

随机推荐

  • 8个面试应对算法题小技巧

    跟大家分享一些在处理算法题时的技巧和方法 尤其是在面试或者是比赛的时候应付难题的技巧 说不定就可以在关键时刻起到作用 冷静 首先要说的就是冷静 越是一些重要的节点 越是要冷静 一旦心里慌乱 手足无措 基本上大脑也就不转了 别说超常发挥了 就
  • Vue路由守卫(通俗易懂)

    一 路由守卫就是 比如说 当点击商城的购物车的时候 需要判断一下是否登录 如果没有登录 就跳转到登录页面 如果登陆了 就跳转到购物车页面 相当于有一个守卫在安检 路由守卫有三种 1 全局钩子 beforeEach afterEach 2 独
  • java中的基本数据类型和引用数据类型以及它们的存储方式堆内存和栈内存

    一直对java中的基本数据类型和引用数据类型之间的关系搞不太清楚 今天做leetcode的一道题目 总算弄清楚了关系 写下来和大家一起分享一下 一 基本数据类型 数据类型在计算机语言里面 是对内存位置的一个抽象表达方式 可以理解为针对内存的
  • 机械革命Code01开启Hyper-V/安装Docker无限蓝屏解决方法

    机械革命Code01开启Hyper V 安装Docker无限蓝屏解决方法 半年前买了机械革命Code01 因为它的扩展性和性能和电池都让我非常满意 当然也许现在也有更好的选择 但是当时真不错 用起来也很爽 今日安装Docker时会蓝屏 起初
  • 群辉nas看剧设置

    首先打开NAS的后台页面 打开 控制面板 然后依次点开 文件服务 SMB 高级设置 在最小SMB协议后面的方框选择 SMB1 然后点击 保存 按钮即可 这里这样设置的原因是因为还有很多旧设备只支持SMB1 我几年前的电视盒子就是这样 如果不
  • Android ProgressBar颜色设置

    ProgressBar的颜色和设置的默认主题相关联 在styles xml中
  • 解决drawerlayout嵌套listview 导致listview不能滑动的问题

  • windows10复制粘贴键突然失效 的一个最简单的解决方法

    今天复制粘贴键突然失效 在网上捣鼓了好多方法都不行 最后发现 看看你有没有在用加密视频 有就把它关了 关了就好了
  • react-router-dom的路径匹配 属性exact 与strict

    在这里先介绍一个比较难以描述的坑 在使用react router的时候我首先就是先在react router的官网上去看她的官方文档 然后按照上面的教程来在自己的react工程中使用react router 但是基本应该会遇到问题 原因就是
  • 小程序---365笔记第11天---微信小程序登录接入

    接入前的准备工作参考文档 微信小程序登录接入 必做 登录逻辑 小程序登录逻辑梳理 使用插件参考文档 https developers weixin qq com miniprogram dev framework plugin using
  • windows下WS2tcpip.h和windows.h报错

    include
  • java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment

    最近做项目遇到场景 通过前端提交的JAVA代码 创建java文件 然后再编译JAVA文件称class文件 具体实现的细节 就不细说了 最后执行的结果能正常执行 但控制台报错 Can t initialize javac processor
  • Zotero

    用户笔记区代码问题 用户笔记区用于记录阅读文献中的总结 是很重要的笔记模块 Zotero IF 插件提供了obsidian用户笔记区这一功能 很有用 但经本人实际使用发现 Zotero IF插件官网给的用户笔记区模板并不实用 主要存在以下几
  • 【牛客刷题专栏】0x32:JZ45 把数组排成最小的数(C语言编程题)

    前言 个人推荐在牛客网刷题 点击可以跳转 它登陆后会保存刷题记录进度 重新登录时写过的题目代码不会丢失 个人刷题练习系列专栏 个人CSDN牛客刷题专栏 题目来自 牛客 题库 在线编程 剑指offer 目录 前言 问题描述 解法思路 代码结果
  • 数字信号带宽讲解

    引言 在学习和工作中 经常和数字信号打交道 但是经常会接触到数字信号的带宽 对于这一概念 我理解的并不是很透彻 所以今天来抽丝剥茧 把这一概念彻底理解清楚 内容引申 要理解数字信号带宽 就先要了解信号的上升时间 上升时间 上升时间的概念 任
  • Win定时任务更新SVN库

    找到计算机管理 右击任务计划程序库 gt 创建基本任务 填写好名称和描述 NEXT NEXT NEXT 这里选择好svn exe 参数配置成 update D your dictionary NEXT 设置属性 选择触发器 gt 编辑 设置
  • 修改docker容器中文件(配置文件)

    背景 在使用docker搭建hadoop时需要修改docker容器里的文件 不想装ubutu所以在容器里用不了vim命令修改文件 1 查看所有容器名称和基本信息 docker ps 2 查看某个容器信息 docker inspect 容器名
  • 了解数据库的作用、特点及关系型数据库管理系统

    学习目标 能够知道数据库的作用数据库和数据库管理系统的关系 一 数据库 1 数据库的介绍 数据库就是存储和管理数据的仓库 数据按照一定的格式进行存储 用户可以对数据库中的数据进行增加 修改 删除 查询等操作 2 数据库的分类 关系型数据库
  • 干货渗透测试面试题汇总

    干货 渗透测试面试题汇总 以下为信息安全各个方向涉及的面试题 星数越多代表问题出现的几率越大 没有填答案是希望大家如果不懂能自己动手找到答案 祝各位都能找到满意的工作 注 做这个List的目标不是全 因为无论如何都不可能覆盖所有的面试问题
  • c++,父类引用指向子类对象,虚函数

    include