关于析构函数?? 没看懂!
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
struct name{
char *contents;
name (char *name);
~name();
};
name::name(char *name)
{
int len=strlen(name);
contents=new char[len+1];
strcpy(contents,name);
}
name::~name()
{
cout<<"~~~~~~~~~~`"<<contents<<endl;
}
void client()
{
name n1("jones");
name *p=new name("liukun");
delete p; //只有p啊!!????n1的地址怎么删的?
}
int main()
{
client();
getchar ();
return 0;
}
输出结果是 ~~~~~~~~~~~~jones
~~~~~~~~~~~~liukun
delete不是 只把*p指向的地址删除了吗?为什么也把n1也删了
谁能帮我说明以下
顺便在说一下析构函数 谢谢了!