news 2026/3/13 17:32:48

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

作者头像

张小明

前端开发工程师

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/3/9 11:44:50

AI如何帮你掌握SQL条件表达式:CASE WHEN THEN ELSE END

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个交互式SQL学习工具&#xff0c;展示CASE WHEN THEN ELSE END语句的各种用法示例。要求包含&#xff1a;1) 基础语法结构可视化展示 2) 5个不同复杂度的使用案例 3) 实时执行…

作者头像 李华
网站建设 2026/3/12 18:27:14

前端新手必学:AbortController从入门到精通

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个交互式学习页面&#xff0c;包含&#xff1a;1) AbortController的动画原理图解&#xff1b;2) 可交互的代码沙盒示例&#xff1b;3) 分步骤的学习指引&#xff1b;4) 常见…

作者头像 李华
网站建设 2026/3/13 17:22:36

1小时原型开发:用Mediago快速验证你的媒体应用想法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Mediago快速原型生成器&#xff0c;能够根据用户输入自动生成媒体应用原型。要求&#xff1a;1. 用户通过表单描述应用需求&#xff1b;2. 系统生成可交互的HTML原型&#…

作者头像 李华
网站建设 2026/3/10 8:02:39

AI智能体浪潮的背后:揭示生产环境中的5个意外真相

传送锚点要点一&#xff1a;要的不是“全能”&#xff0c;而是“可控”——生产中的智能体出奇地简单要点二&#xff1a;“AI自主”的神话——人类仍然是最终的守门人要点三&#xff1a;别谈颠覆&#xff0c;先谈效率——企业部署智能体的首要目标是务实的要点四&#xff1a;“…

作者头像 李华
网站建设 2026/3/8 4:36:12

CSS定位入门:10分钟学会sticky效果

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 制作一个面向初学者的position: sticky交互式教学示例。要求&#xff1a;1. 左侧显示代码编辑器(可实时修改)&#xff0c;右侧显示预览 2. 通过5个渐进式示例演示sticky用法&#x…

作者头像 李华
网站建设 2026/3/11 16:32:38

5分钟用AbortController打造可取消的搜索组件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 快速生成一个实时搜索组件原型&#xff0c;要求&#xff1a;1) 输入时自动发起搜索&#xff1b;2) 输入变化时取消前一个请求&#xff1b;3) 防抖300ms&#xff1b;4) 显示加载状态…

作者头像 李华