金山面试官问:用空指针调用一个空函数的时候会发生什么?

news/2025/11/17 12:13:41/文章来源:https://www.cnblogs.com/XShuang-0101/p/19232023

面试官写了这样一个类和函数调用
class A {
public:
void func() {
// 函数体为空
}
};

int main() {
A* ptr = nullptr; // 空指针
ptr->func(); // 用空指针调用func()
return 0;
}
的确让人疑惑,他应该是想考察当空指针调用类的非虚成员函数时,程序通常会正常知行,不会立即崩溃(但是这属于未定义行为)
但是C++规定通过空指针调用非静态成员函数属于未定义行为。(如果函数体中包含了对其他变量或者调用其他依赖this指针的操作),编译器也可能生成访问this指针的代码(如调试信息、栈帧处理),导致程序崩溃。

正确解释:C++中,非虚成员函数的调用不依赖对象的实际内存,而是在编译时通过类名确定函数地址(类似于静态绑定)。
注:①成员函数的底层实现会隐含一个this指针参数,指向调用该函数的对象。②当函数体为空的时候,即使this指针式nullptr,函数执行过程不会访问this指向的内存(因为没有任何操作),因此可能“侥幸”崩溃。

如果func()是虚函数,情况就完全不同了;必然崩溃。
class A {
public:
virtual void func() {} // 虚函数
};

int main() {
A* ptr = nullptr;
ptr->func(); // 必然崩溃
return 0;
}
虚函数调用需要通过对象的虚函数表查询函数地址,而vptr(虚函数表指针)存储在对象的内存中,空指针指向的内存无效,访问vptr会直接导致内存错误,程序崩溃。

金山大佬们还是考察对类的封装比较深入的,进一步深入了解类中成员的内存分布

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

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

相关文章

数据采集与技术融合班级作业三102302119庄靖轩

数据采集与融合实验第三次报告 作业1 1)实验内容 要求:指定一个网站,爬取这个网站中的所有的所有图片,中国气象网(http://www.weather.com.cn)。实现单线程和多线程的方式爬取。 代码说明 说一下想法,我先使用了…

Go语言AI智能体开发套件(ADK) - 构建复杂AI代理的开源框架

谷歌开源的Go语言AI智能体开发套件,提供代码优先、模块化的框架,用于构建、评估和部署复杂的AI代理系统,支持多代理协作和云原生部署。Go语言AI智能体开发套件(ADK) Agent Development Kit (ADK) 是一个灵活、模块化…

2025年比较好的卡通布箱包布厂家推荐及选择指南

2025年比较好的卡通布箱包布厂家推荐及选择指南 开篇:行业背景与市场趋势 近年来,随着消费者对个性化、轻量化箱包需求的增长,卡通布箱包市场迎来了快速发展。根据《2024年中国箱包行业白皮书》数据,2023年中国箱…

2025年靠谱的1680D单双股布牛津布品牌厂家排行榜

2025年靠谱的1680D单双股布牛津布品牌厂家排行榜行业背景与市场趋势牛津布作为一种多功能、耐用的纺织材料,近年来在箱包、帐篷、户外装备等领域的需求持续增长。根据中国纺织工业联合会最新发布的《2024-2025年中国产…

AD加工文件导出记录

加工文件包括:Gerber文件、NC钻孔文件、坐标文件、装配图文件和Bom文件。 常规导出方案 Gerber导出 由于Gerber有新版本,为兼容性两个版本都会记录,实际情况下只选择其中一个Gerber文件选项导出即可。 gerber导出文…

Ai元人文:新的期待——基于现状的共情协同架构

Ai元人文:新的期待——基于现状的共情协同架构 核心论点:在真正的“情感计算”成熟之前,Ai元人文倡导一种 “结构化共情”——通过制度设计、交互规则和价值原语框架,在缺乏直接情感感知的技术条件下,系统性地模拟…

2025年印刷固化灯优质厂家权威推荐榜单:紫外线灯板/曝光固化灯/生物成像紫光优质厂家精选

印刷固化灯作为现代印刷工业的核心设备,其性能直接影响印刷品的质量、生产效率和能源消耗。随着UV-LED技术的快速发展,全球印刷固化设备市场正经历着深刻变革。基于行业技术调研和市场数据分析,本文为您呈现2025年印…

戴尔PowerEdge R720服务器配置raid

1、服务器开机,当出现 Press <Ctrl> <R> to Run Configuration Utility 时,按键盘 Ctrl + R 快捷键进入RAID磁盘阵列配置 2、H700磁盘阵列卡配置界面,定位在阵列卡按F2,选择“Create New VD”创建新…

2025年热门的农药分散剂厂家最新热销排行

2025年热门的农药分散剂厂家最新热销排行行业背景与市场趋势农药分散剂作为农药制剂中不可或缺的功能性助剂,在提升农药利用率、降低环境污染方面发挥着关键作用。根据中国农药工业协会最新发布的《2024-2025年中国农…

LC1513 全1子串数

题面 LC1513 代码 class Solution:def numSub(self, s: str) -> int:subLens = []count = 0for i in range(len(s)):if s[i] == 1:count+=1elif s[i] == 0:subLens.append(count)count = 0subLens.append(count)# 计…

2025年优秀的321不锈钢带厂家推荐及采购指南

2025年优秀的321不锈钢带厂家推荐及采购指南行业背景与市场趋势不锈钢带作为工业制造领域的重要基础材料,广泛应用于机械制造、石油化工、电力设备、医疗器械等行业。根据中国特钢企业协会不锈钢分会最新数据显示,20…

基于LiveWire算法的MATLAB实现代码

一、算法原理与流程 1. 核心步骤 % 输入:灰度图像I,起点p0,终点p1 % 输出:分割路径points1. 图像预处理- 高斯滤波去噪- 计算梯度幅值G和方向θ- 计算拉普拉斯过零点Z2. 构建代价图- 定义邻域(8邻域或4邻域)- 计…

2025年雕花铝单板源头厂家权威推荐榜单:氟碳铝单板/阳极氧化铝单板/仿木纹铝单板源头厂家精选

雕花铝单板作为建筑装饰领域的重要材料,以其丰富的艺术表现力、卓越的耐久性和环保特性,在商业建筑、文化场馆、轨道交通等高端项目中应用日益广泛。为帮助行业用户精准选购,本文基于行业技术数据和企业实力评估,为…

LC2257 保卫格子

题面 LC2257 代码 class Solution { public:int countUnguarded(int m, int n, vector<vector<int>>& guards, vector<vector<int>>& walls) {// we define:// 0: non-guarded// 1: g…

2025年移动厕所定做厂家权威推荐榜单:垃圾分类屋/活动房/移动岗亭源头厂家精选

在城市化进程和环保需求的双重推动下,中国移动厕所市场规模正以年均12%的速度增长,预计2025年市场规模将突破48亿元。定制化、智能化与环保性能已成为行业核心竞争力。 01 行业趋势:定制化与智能化引领市场发展 移动…

2025江浙沪地区PLC控制柜制造企业综合实力榜:昆山华普拓电气蝉联技术创新与全球化服务双料标杆

工业自动化浪潮下,PLC控制柜作为产线的"神经中枢",其性能直接决定生产效率。华东作为中国制造业重镇,这里聚集着众多控制柜制造商,其中具备自主研发能力和国际资质认证的企业正迎来爆发式增长。 本次榜单…

【LVGL】加载器部件

引言 加载器部件(lv_spinner)一般不会修改手柄的样式。 加载器部件相关 api 函数示例程序 void my_gui(void) {lv_obj_t *spinner = lv_spinner_create(lv_scr_act(), 1000, 60); /* 入口参数:父对象,指示器旋转一…

2025年质量好的冷弯机组厂家选购指南与推荐

2025年质量好的冷弯机组厂家选购指南与推荐行业背景与市场趋势冷弯成型技术作为金属加工领域的重要组成部分,近年来随着建筑、交通、能源等行业的快速发展,市场需求持续增长。根据中国钢结构协会冷弯型钢分会最新统计…

Windows 11 下安装 Codex,利用 MegaLLM 的 API 体验 GPT-5

有Node环境的可以跳过, 首先安装 nvm for windows 可以从第三方网站下载 https://nvm.uihtm.com/nvm-1.2.2-setup.zip 接着 安装 node 22 set NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ nvm instal…

2025哪个出国留学机构好一点

2025哪个出国留学机构好一点一、2025年哪个出国留学机构好一点?准备在2025年申请留学的同学们,是不是已经开始为选择中介机构而烦恼了?打开搜索框,一连串的问题可能瞬间涌上心头:到底哪家留学中介更靠谱?网上口碑…