c ++中的空指针

时间:2011-07-09 18:07:34

标签: c++

  

可能重复:
  Accessing class members on a NULL pointer

#include<iostream.h>
class X{
    private:
        int x;
    public:
        X() {}
        void func() {
            cout<<"In func()"<<endl;
        }
};

int main(void)
{
    X *x=NULL;
    x->func();
    return 0;
}

我对o / p感到非常惊讶,有人可以解释一下x如何访问func()。

1 个答案:

答案 0 :(得分:4)

x->func()只是表示您使用func指针为this来调用x。所以在这种情况下它是NULL

func开始,您没有使用任何成员变量,因此您没有使用this

无论如何,这是不好的,正如Bo Persson指出的那样,未定义的行为。你不应该这样做。