【问题标题】:Null pointer in c++ [duplicate]C ++中的空指针[重复]
【发布时间】:2011-10-01 23:11:46
【问题描述】:

可能重复:
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()。

【问题讨论】:

  • 这是未定义的行为。没有任何解释 - 任何事情都发生了。
  • @Bo - 好吧, 一个解释,只是不是根据 C++ 标准。更多关于 C++ 的正常编译方式。无论如何 +1 评论,对于未定义的行为。

标签: c++


【解决方案1】:

x-&gt;func() 仅表示您正在调用func,而this 指针为x。所以在这种情况下是NULL

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

无论如何,这很糟糕,正如 Bo Persson 所指出的,未定义的行为。你不应该这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-21
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多