这段代码为什么编不过 报错
#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;不然内存泄露