#include <iostream>
using namespace std;
class A{
public:
void f(){ cout<<this<<endl; }
};
int main()
{
A *a = nullptr;
a->f();
return 0;
}
程序输出:
0
为什么 a->f()
这种空指针调用成员函数是允许的?它的机制是什么?
#include <iostream>
using namespace std;
class A{
public:
void f(){ cout<<this<<endl; }
};
int main()
{
A *a = nullptr;
a->f();
return 0;
}
程序输出:
0
为什么 a->f()
这种空指针调用成员函数是允许的?它的机制是什么?
3 回答807 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
1 回答2.2k 阅读
1 回答811 阅读✓ 已解决
2 回答1.1k 阅读
1 回答1.2k 阅读
1 回答679 阅读
类实例
a
当然可以调用它的公开成员函数a->f()
,这是类函数的调用方式,跟a
是不是空指针无关。nullptr -> f()
会不会崩溃,取决于f()
是否依赖类实例相关属性,举例