news 2026/7/19 8:14:01

使用空指针对象调用成员函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用空指针对象调用成员函数

C++中,调用对象的成员函数时,编译器会将对象的地址作为this指针传入成员函数中作为隐藏参数,供成员函数使用。同时,对象的成员函数是属于类的,而不是属于对象的,因此即使使用空指针对象调用成员函数,若在成员函数中没有使用this指针,则程序依然能够正常执行。

但若在成员函数中使用了this指针,包括访问对象的成员变量,或是调用虚函数(需要通过this指针找到类的虚函数表),则this指针不能为空指针,也即是不能使用空指针对象调用成员函数。

下面的代码演示了使用空指针对象调用成员函数的不同情况:

#include <iostream> class Foo { public: Foo(void) { } void func(void) { printf("%s:%d\n", __func__, __LINE__); } void func2(void) { printf("%s:%d, a=%d\n", __func__, __LINE__, a); } virtual void func3(void) { printf("%s:%d\n", __func__, __LINE__); } private: int a; }; int main(void) { Foo *foo = nullptr; foo->func(); // OK foo->func2(); // Error foo->func3(); // Error return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 13:59:10

1小时快速搭建Kiro下载工具原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速开发一个Kiro下载工具最小可行产品(MVP)&#xff0c;包含核心功能&#xff1a;1. 基础下载功能&#xff1b;2. 简单的进度显示&#xff1b;3. 下载历史记录&#xff1b;4. 基本…

作者头像 李华
网站建设 2026/7/16 9:14:43

GitLab本地部署效率革命:比官方文档快3倍的极简方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个GitLab极速部署工具包&#xff0c;包含&#xff1a;1) 预配置好的Docker Compose模板(区分社区版/企业版) 2) 常见错误自动修复脚本 3) 部署进度实时监控面板 4) 后安装优化…

作者头像 李华
网站建设 2026/7/18 21:33:08

智能问数如何让数据分析效率提升10倍

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个效率对比演示应用&#xff0c;左侧展示传统数据分析流程&#xff1a;手动写SQL、导出数据、用Excel制作图表&#xff1b;右侧展示智能问数流程&#xff1a;直接输入自然语言…

作者头像 李华
网站建设 2026/7/17 13:29:45

Phyfusion在游戏开发中的5个惊艳应用案例

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个展示Phyfusion在游戏物理效果中应用的Demo。包含&#xff1a;1. 布料实时模拟的角色披风系统&#xff1b;2. 基于物理的破碎效果&#xff08;玻璃、墙体&#xff09;&#…

作者头像 李华
网站建设 2026/7/18 8:52:49

电商网站商品筛选栏的sticky定位实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个电商商品列表页的筛选栏sticky实现方案。页面顶部有网站导航(高度80px)&#xff0c;下方是筛选栏(高度50px)&#xff0c;再往下是商品列表。要求&#xff1a;1. 滚动时筛选…

作者头像 李华
网站建设 2026/7/17 14:00:10

零基础学结构体:从概念到实战5个例子

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 设计一个适合初学者的结构体教学示例集合&#xff0c;包含5个逐步复杂的案例&#xff1a;1. 二维点坐标 2. 图书信息管理 3. 简单银行账户 4. 游戏角色属性 5. 学生成绩统计。每个案…

作者头像 李华