c++ - 通过NULL类指针调用类方法

标签 c++

我有以下代码片段:

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/

相关文章:

c++ - 允许仅使用动态分配来分配对象

c++ - 类定义中的结构实例产生编译器错误

c++ - 需要使用 Volatile 关键字的一些优化编译器在读取时执行哪些操作?

c++ - std::priority_queue 声明可以在没有专门化的情况下缩短吗?

c++ - 使用 vector 数组在 C++ 中创建扫雷

c++ - 如何获得更精确的鼠标移动

c++ - Openmp线程休眠

c++ - "Cannot allocate an object of abstract type"错误

c++ - 如果我有一些符号警告,我可以使用 windbg analyze 的结果吗?

c++ - 如何将长文档字符串放入 c/c++ 程序中?