问一下一个空指针被调用,为什么不会出错?

C++语言 码拜 9年前 (2016-01-30) 882次浏览
本人用VS2015编译器

#include <iostream>
using namespace std;
class A
{
public:
	void fun()
	{
		cout << "ok" << endl;
	}
};
int main()
{
	A *pa=0;
	pa->fun();  //居然不出错,什么原理?
	return 0;
}

执行以后在屏幕上会打印ok

解决方案:20分
类的函数本质上是等价于普通函数加上this入参,虽然this的值是null,但是没有类成员调用,所以不会出错.
解决方案:20分
函数里没有使用类的数据成员,相当于调用静态函数

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下一个空指针被调用,为什么不会出错?
喜欢 (0)
[1034331897@qq.com]
分享 (0)