读书人

这段代码为什么编不过 报错解决思路

发布时间: 2012-02-23 22:01:35 作者: rapoo

这段代码为什么编不过 报错




#include<iostream.h>
#include<string.h>
//const int CHAIN_NUM = 3;

class RCInst
{

public:

char* ocname;




RCInst()
{}
RCInst(char* a)
{
ocname=strdup(a);
cout<<"constructing "<<ocname<<endl;

}

RCInst(RCInst& a)
{ ocname=new char[strlen(a.ocname)+1];
strcpy(ocname,a.ocname);
// ocname=strdup(a.ocname);
cout<<"copying "<<ocname<<endl;

}

~RCInst()
{
cout<<"destructing "<<ocname<<endl;
delete ocname;

}

};

void main()
{
RCInst ra("wo shi zx");
RCInst rb(ra);
rb.ocname="a";


}

[解决办法]
在rb.ocname=strdup("a"); 前号要加句delete []rb.ocname;不然内存泄露

读书人网 >C++

热点推荐