(高分)奇怪的问题,一个类的空指针,执行里面函数,居然成功

xbt746 2010-12-31 11:53:52
当然,函数里面使用的都是静态变量

难道空指针指向函数不会报错吗?????????
...全文
139 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
arong1234 2010-12-31
  • 打赏
  • 举报
回复
能否调用是语法问题,只要类型对,就可以。空指针的类型也对,所以能调
是否出错是运行时问题,只要你不去访问空指针指向的内存,当然没问题。而调用成员函数不会做这种访问[Quote=引用 8 楼 thefirstz 的回复:]
空指针为什么能调用成员函数
[/Quote]
healer_kx 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hai040 的回复:]

不取成员变量的值就不会
[/Quote]

嗯,预见性~
wmnothing 2010-12-31
  • 打赏
  • 举报
回复
一点不奇怪,这就是事实。
就想叫yoko 2010-12-31
  • 打赏
  • 举报
回复
bluejays 2010-12-31
  • 打赏
  • 举报
回复
假定C是一个类,对于C *p;
如果调用p->f(),不管p指向什么,包括空指针,调用的都是同一个函数。如果f()里面用到了成员变量a,那就会访问p->a,这时候p的指向就有作用了。
dooX8086 2010-12-31
  • 打赏
  • 举报
回复
类...空指针??
class *p = 0; //指向0中空指针或无指向..没初始化的是野指针
p->method(); //???? 这样能执行??

空指针指向函数????它还叫空指针???


//无码无真相
pengzhixi 2010-12-31
  • 打赏
  • 举报
回复
没用到类里面的非静态数据成员都没问题。
bluejays 2010-12-31
  • 打赏
  • 举报
回复
成员函数和成员变量的存储方式不同。类的每个实例都有各自的成员变量,但是他们共用一个成员函数代码。这点来说成员函数和静态变量比较类似,都是单独保存、独立于实例,所以即使是空指针也没关系。
luciferisnotsatan 2010-12-31
  • 打赏
  • 举报
回复
成员函数调用时,都会加上一个参数,隐含的this指针,没用到这个this指针就没问题。

比如 p->fun(a,b) 实际上是 fun(p,a,b); 这个p就是this指针,指向对象自己
bluejays 2010-12-31
  • 打赏
  • 举报
回复
如果访问了成员变量,就会报错了
xbt746 2010-12-31
  • 打赏
  • 举报
回复
算是长见识了
justkk 2010-12-31
  • 打赏
  • 举报
回复
无代码无真相
hai040 2010-12-31
  • 打赏
  • 举报
回复
只有成员变量用会用到this
hai040 2010-12-31
  • 打赏
  • 举报
回复
不取成员变量的值就不会
悟迟 2010-12-31
  • 打赏
  • 举报
回复
赶紧留名,占位,求点分
xbt746 2010-12-31
  • 打赏
  • 举报
回复
准备结贴了,谢谢大家的热情回复啊

15,439

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧