buffer指针给删除了, 为什么下面一句还能够赋值?
#include <iostream.h>
#include <String.h>
class String
{
private:
int length;
char *buffer;
public:
String (const char *str)
{
length=strlen(str);
buffer=new char[length+1];
strcpy(buffer, str);
}
int getlength() const
{
return length;
}
void append(const char *tail)
{
char *tmp;
length+=strlen(tail);
tmp=new char[length+1];
strcpy(tmp, buffer);
strcat(tmp, tail);
delete[] buffer;// 这一句已经把buffer指针给删除了, 为什么下面一句还能够赋值?
buffer=tmp;
}
~String(){delete[] buffer;};
};
void main()
{
String s2("this ");
s2.append("a String. ");
}