pointer_1

来源:互联网 发布:excel删除一列数据 编辑:程序博客网 时间:2024/06/13 21:01
#include <iostream>using namespace std;class A{public:    A();    ~A();    void SetNextPtr(A *ptr)    {        pNext = ptr;    }private:    double m_d1;    A *pNext;       };A::A(){    pNext = NULL;    m_d1 = 0.0;}A::~A(){    if(pNext)    {        delete pNext;        pNext = NULL;    }               }int main(){    // 下面的两行代码调用类A的构造函数    A *ptr1 = new A();    A *ptr2 = new A();    cout << sizeof(A) << endl;    cout << sizeof((*ptr1)) << endl;    ptr2->SetNextPtr(ptr1);    ptr1->SetNextPtr(ptr2);    // delete ptr1; 会调用ptr1指向类的析构函数,析构函数里面又调用delete    // 造成一个指针被删除2次以上,程序抛出异常    delete ptr1;    delete ptr2;    system("pause");    return 0;}
原创粉丝点击