请教各位一个关于深浅拷贝的问题
#include <iostream>using namespace std;
class String
{
private:
char *a;
int len;
public:
void showstr()
{
cout<<"string:"<<a<<",length:"<<len<<endl;
}
String()
{
len=0;
a=NULL;
}
String(const char *p)
{
len=strlen(p);
a=new char[len+1];
strcpy(a,p);
}
~String()
{
if(a!=NULL)
{
delete a;
a=NULL;
}
}
};
int main()
{
String s1("123456"); //上面有个定义的拷贝构造函数,但是我的书上说按照下面这样拷贝会有问题,因为不是 深拷贝,只是一般的浅拷贝,但是我用DEV运行并没有报错,请问各位这是为什么呀?
String s2(s1);
s2.showstr();
system("pause");
}
望各位回帖哈 ~!小弟对这种深浅拷贝弄的不是很明白~!谢谢了 ~!