看代码:
#include<iostream.h>
#include<string.h>
class Name
{
public:
Name()
{
strName=NULL;
}
Name(char *str)
{
strName=(char *)new char[strlen(str)+1];
//因字符串后面还有一个结束字符,因此内存空间的大小要多开辟1个内存单元
strcpy(strName,str);
}
~Name()
{
if(strName)
delete []strName;
strName=NULL;
}
char *getName()
{
return strName;
}
private:
char *strName;
};
int main()
{
char *p=new char[5];
strcpy(p,"DING");
Name one(p);
delete []p;
cout<<one.getName()<<endl;
return 0;
}
结果: