社区
C++ 语言
帖子详情
谁能解释一下:空指针对象成员函数调用正常
neosu
2007-08-07 09:38:37
class A
{
public:
int b;
int func1(){return 10;};
};
//调用时
A * pa = NULL;
int aa = pa->func1();//这行不出错,结果正确
调试时发现, pa地址为 NULL,而pa->func1地址有效。
谁能解释一下?
...全文
284
7
打赏
收藏
谁能解释一下:空指针对象成员函数调用正常
class A { public: int b; int func1(){return 10;}; }; //调用时 A * pa = NULL; int aa = pa->func1();//这行不出错,结果正确 调试时发现, pa地址为 NULL,而pa->func1地址有效。 谁能解释一下?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luojinping
2012-08-11
打赏
举报
回复
类方法属于类。整个类只有一份拷贝,所有对象共用。因此调用类方法不要求拥有有实体对象,而数据成员在每个对象中有自己的一份独立实体,所以方法中有数据成员操作时,使用空指针调用会出错,因为无法解析数据成员。
编译器编译后的成员函数的第一个参数是this指针,通过this指针引用数据成员及调用其它成员函数。由于你调用的成员函数没有使用到类的数据成员,所以即使传入的this指针为空,运行也不会出错。
hrx1989
2010-12-22
打赏
举报
回复
学习了!
原来这样都可以用this指针!!!
seysey
2007-08-07
打赏
举报
回复
david能否解释一下为什么虚函数就会报错了?
谢谢
Tracy2007
2007-08-07
打赏
举报
回复
楼上解释的很好啊,学习了
jxlczjp77
2007-08-07
打赏
举报
回复
呵呵,这是正常的,只要函数里面不通过this指针去操作成员变量就行,成员函数跟一般的函数没什么差别,只不过调用方式需要一个类的对象或者指针来调用罢了,因为它默认绑定了一个this指针形参而已,这个指针为0也没问题。
david2083
2007-08-07
打赏
举报
回复
int aa = pa->func1();
这个不是虚函数,函数地址直接编译到这里,所以能调用
相当于 int a = A::func1(this)
不过传给func1的this指针应该是NULL
如果是虚函数,就可能会出错了
int a = pa->vtable[0](this)
xiantongyuan
2007-08-07
打赏
举报
回复
成员函数是独立于对象的,也就是说它不在对象内部。
搞定系列:yolox检测封装成类
调用
本课程主要核心是将Yolox框架封装成一个类,方便
调用
或者集成开发以及集成部署。通过本课程您将收获一下知识: (1)了解Yolox框架检测基本流程; (2)掌握目标检测封装类大体思路; (3)学会Yolox封装函数以测试...
【C++】
空指针
调用
成员函数
及访问成员变量
最近在review代码的时候发现,使用了
空指针
调用
成员函数
,并且
成员函数
内部有使用到成员变量,居然没有出错。很是奇怪,就用一篇博客把关于
空指针
调用
成员函数
相关的内容总结起来。 本文实例源码github地址:...
C++
空指针
调用
类
成员函数
C++
空指针
可以
调用
类
成员函数
,但是【不能
调用
】类中的【虚函数】 我们知道,一个
对象
的指针可以
调用
它的
成员函数
和虚函数,那么如果一个指向空nullptr的指针,能不能
调用
它的
成员函数
和虚函数。 #include<...
C++---
空指针
能
调用
类
成员函数
吗?
我们知道,一个
对象
的指针可以
调用
它的
成员函数
和虚函数,那么如果一个指向空nullptr的指针,能不能
调用
它的
成员函数
和虚函数。 #include<iostream> using namespace std;; class A { public: void func1() ...
用类的
空指针
调用
非虚
成员函数
和虚函数
先来看下面这段代码: class A { private: int data; public: void fun1() { } virtual void fun2(){ } }; int main() { ...p是
空指针
,fun1()是普通
成员函数
,fun2
C++ 语言
64,636
社区成员
250,540
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章