相关疑难解决方法(0)

c ++使用空指针访问静态成员

最近尝试了以下程序,它编译,运行正常并产生预期的输出,而不是任何运行时错误.

#include <iostream>
class demo
{
    public:
        static void fun()
        {
            std::cout<<"fun() is called\n";
        }
        static int a;
};
int demo::a=9;
int main()
{
    demo* d=nullptr;
    d->fun();
    std::cout<<d->a;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果未初始化的指针用于访问类和/或结构成员,则行为未定义,但为什么允许使用空指针访问静态成员.我的计划有什么危害吗?

c++ static-members nullptr language-lawyer c++11

22
推荐指数
1
解决办法
3618
查看次数

标签 统计

c++ ×1

c++11 ×1

language-lawyer ×1

nullptr ×1

static-members ×1