慎用系统默认的拷贝和赋值函数

来源:互联网 发布:看簧片的软件 编辑:程序博客网 时间:2024/06/08 09:35

下面的东西也是说出来大家都知道,但是真正编码的时候可能又会不注意了,

用代码说话

class A
{
public:
    A():p(0){}
    A(int* pp):p(pp){}
    ~A()
    {
        if (p)
        {
            delete p;
            cout<<"~A()"<<endl;
        }
    }
private:
    int *p;
};

int main()

{

   //下面的大括号只是想说明域的问题,早点让程序卡擦

   {
        A a1;
        {
            int *p= new int(5);
            A a2(p);
            a1=a2;
        }
    }
    system("pause");
    return 0;

}

程序的结果肯定是卡擦了

原创粉丝点击