我有以下代码片段:
class ABC{
public:
int a;
void print(){cout<<"hello"<<endl;}
};
int main(){
ABC *ptr = NULL:
ptr->print();
return 0;
}
运行成功。谁能解释一下?
最佳答案
使用不指向有效对象的指针调用成员函数会导致未定义的行为。什么事情都可能发生。它可以运行;它可能会崩溃。
在这种情况下,它似乎可以工作,因为 this
指针,它不指向一个有效的对象,没有在 print
中使用>.
关于c++ - 通过NULL类指针调用类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505328/