C++ 智能指针初始化问题

class plugin {
public:
    enum RunStatus {
        Running = 0
    };
    int test()
    {
        printf("test null shared ptr\n");
        return 0;
    }
};

int main()
{
    std::shared_ptr<plugin> iter = NULL;
    std::cout << iter->test() << std::endl;  // 不会异常退出

    std::shared_ptr<int> iterInt = NULL;
    std::cout << *iterInt << std::endl; // 异常退出
    return 0;
}

如果plugin类有成员变量,也会异常退出


版权声明:本文为jike28原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。