NULL引用的对象可以访问函数但不能访问变量

时间:2013-07-31 09:41:37

标签: c++ class pointers dynamic-memory-allocation

我试图使用指针使用'new'分配内存来访问类中的函数。但我注意到了一种不同的行为。有一次,使用'delete'释放对象并引用NULL,它仍然可以访问函数,但不能访问变量。当我尝试这样做时,我收到Segmentation Fault。谁能解释一下?提前谢谢!

#include <iostream>
using namespace std;

class A
{
    public:

        int ba;

        A()
        {
            ba=10;
        }

        void func1()
        {
            cout<<"func1 is called\n";
        }

        void func2()
        {
            cout<<"func2 is called\n";
        }
};

int main()
{

    A *ptr=new A();
    ptr->func1();
    cout<<ptr->ba;
    delete ptr;
    ptr=NULL;

    ptr->func2();
    //cout<<ptr->ba;
    return 0;

}

0 个答案:

没有答案