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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jike28/article/details/120860772