关于虚函数、父类指针、父类子类内存访问的一道很有意思的笔试题

2023-11-09

1. 题目

1.1 原题

#include<iostream>
using namespace std;
class A
{
public:
	A() { a = 5; }
	virtual void fun(x) { a += x; }
	void fun2(x) { a -= x; }
	int a;
};

class B: public A
{
	B() { a = 10; }
	void fun(x) { a -= x; }
	virtual fun2(int x) { a += x;}
}

int main()
{
	A* p = new B;
	p->fun(1);
	cout << p->a << endl;
	p->fun2(3);
	cout << p->a << endl;
	
	return 0;
}

问: 输出是什么?

1.2 扩展1

如果B类里也有成员变量int a,输出为多少?

class B: public A
{
	B() { a = 10; }
	void fun(x) { a -= x; }
	virtual fun2(int x) { a += x;}
	int a;
}

1.3 扩展2

如何访问A类和B类的成员变量a?

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

关于虚函数、父类指针、父类子类内存访问的一道很有意思的笔试题 的相关文章

随机推荐

  • 【Causality】结构因果下的反事实基本框架

    在之前 博主整理了因果关系之梯第二层 干预的定义 意义 用法 详见以下链接 但干预的目标是找到研究中处理的某个总效应或者在某些样本群体中的效应 平均因果效应 到目前为止我们无法在特定时间谈论个性化的因果关系 而在实际的任务中 我们通过训练集
  • echart 图谱_vue + echarts 实现有层级关系图的图谱

    因为接下来要做的事是一个关系图的东西 所以自己先写一个小demo 特次记录一下 主要实现的点有如下 节点的颜色的更改 自定义提示框配置 以及在里面的点击事件 提示框中的点击事件可以获取到vue实例 图列的自定义 先上效果图 截屏2020 1
  • 记录一些IDEA常用的快捷键和技巧 二(界面布局)

    创建项目 会开启一个进入默认布局界面 如下图 左边依次为 Project视图 Favorites视图以及Structure视图 其中主要关注Project视图 创建Package要注意 将project 右上角齿轮勾选 Flatten Pa
  • 小白入门级知识点:移动app安全测试怎么做?

    随着科技时代的进步和智能手机的普及 现代人离不开手机已经是常态化 一旦手机不在身边便会失去安全感 提到安全一词 我们在使用手机app软件时 安全至关重要 软件里包含的个人信息 资料等等都和安全挂钩 那么在软件测试中移动app安全测试应该怎么
  • python实现线程池

    参照c 的线程池 使用python的threading库实现线程池 import threading import time 线程池的任务 包含一个可调用对象和一个参数数组 class ThreadTask object def init
  • [uC/OS-III] 22. 互斥量

    1 互斥量的基本概念 互斥量又称互斥信号量 本质也是一种信号量 不具备传递数据功能 是一种特殊的二值信号量 它和信号量不同的是 它支持互斥量所有权 递归访问以及防止优先级翻转的特性 用于实现对临界资源的独占式处理 任意时刻互斥量的状态只有两
  • Linux常用基本命令

    目录 1 帮助命令 man 获取帮助信息 type 查看命令是内置命令还是外部命令 help 获取帮助信息 2 文件目录类 pwd 显示当前目录的绝对路径 ls 列出目录中的内容 cd 进入相对应的目录中 mkdir 创建文件夹子 rmdi
  • 安全与加密

    1 使用对称加密算法 实现敏感数据加密 1 1 什么是对称加密 Symmetric encryption
  • (Qt Installer Framework)程序简易打包教程

    Qt Installer Framework 程序简易打包教程 Qt Installer Framework程序简易打包教程 第一步下载Qt Installer Framework 第二步 打包程序安装和环境变量的配置 第三步准好要打包的程
  • C/C++中this指针作用

    this 指针是一个隐含于每一个成员函数中的特殊指针 它指向正在被该成员函数操作的那个对象 当对一个对象调用成员函数时 编译程序先将对象的地址赋给 this 指针 然后调用成员函数 每次成员函数存取数据成员时 由隐含使用 this 指针 当
  • Umi + React + Ant Design Pro 项目实践(六)—— ProLayout 应用

    打开 umirc ts 文件 import defineConfig from umi export default defineConfig plugins umijs plugins dist react query reactQuer
  • Linux增加swap空间的方法

    windows下有虚拟内存 Linux下有swap 如果在安装linux时没有分配足够的swap 可以在Linux下进行增加 具体有两种方法 1 建立一个swap分区 2 建立一个swap文件 一 建立一个swap分区 可以利用磁盘的还未分
  • 使用Torch nngraph实现LSTM

    什么是RNN RNN 多层反馈RNN Recurrent neural Network 循环神经网络 神经网络是一种节点定向连接成环的人工神经网络 这种网络的内部状态可以展示动态时序行为 不同于前馈神经网络的是 RNN可以利用它内部的记忆来
  • 数据挖掘技术(一)预处理

    1 数据预处理 数据预处理技术包括 聚集 抽样 维规约 特征子集选择 特征创建 离散化和二元化 变量变换 属性的类型 标称 定性的 值仅仅是不同的名字 即只提供足够的信息以区分对象 如雇员ID 性别 序数 定性的 值提供足够信息确定对象的序
  • 浙大超厉害计算机硕士生导师

    1 人工智能所 陈德人 教授 计算机图形学与CAD CIMS与虚拟制造 电子商务与信息集成技术 406 87952297 drchen cs zju edu cn 博导 2 人工智能所 陈刚 教授 CIMS 网络安全 协同设计 数据库 50
  • FIFO_IP核介绍和测试

    FIFO IP核介绍和测试 前言 一 简介各端口含义 二 创建同步FIFO IP核 三 FIFO IP核TB测试 四 FIFO IP核仿真结果 五 同步复位和异步复位比较 前言 FIFO 的英文全称是 First In First Out
  • 蓝桥杯C/C++省赛:买不到的数目

    目录 题目描述 思路分析 AC代码 方法一 AC代码 方法二 题目描述 小明开了一家糖果店 他别出心裁 把水果糖包成4颗一包和7颗一包的两种 糖果不能拆包卖 小朋友来买糖的时候 他就用这两种包装来组合 当然有些糖果数目是无法组合出来的 比如
  • 100套基于Java+SSM的毕业设计项目实战(附源码+论文+演示视频)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 今天给大家分享100 基于Java SSM的毕业设计 这些项目都经过精心挑选 涵盖了不同的实战主题和用例 可做毕业设计和课程设计参考 除了源码 对于大部分项目实现的功能都有相应的介绍
  • Qt项目---简单的计算器

    在这篇技术博客中 我们将介绍如何使用Qt框架实现一个简单的计算器应用 我们将使用C 编程语言和Qt的图形用户界面库来开发这个应用 并展示如何实现基本的算术操作 项目设置 首先 我们需要在Qt Creator中创建一个新的Qt Widgets
  • 关于虚函数、父类指针、父类子类内存访问的一道很有意思的笔试题

    1 题目 1 1 原题 include