相关疑难解决方法(0)

访问NULL指针上的类成员

我正在尝试使用C++,发现下面的代码非常奇怪.

class Foo{
public:
    virtual void say_virtual_hi(){
        std::cout << "Virtual Hi";
    }

    void say_hi()
    {
        std::cout << "Hi";
    }
};

int main(int argc, char** argv)
{
    Foo* foo = 0;
    foo->say_hi(); // works well
    foo->say_virtual_hi(); // will crash the app
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道虚方法调用崩溃,因为它需要vtable查找,并且只能使用有效对象.

我有以下问题

  1. 非虚方法如何处理say_hiNULL指针?
  2. 对象在哪里foo分配?

有什么想法吗?

c++ null virtual null-pointer

48
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×1

null ×1

null-pointer ×1

virtual ×1