- 如果类构造函数出现异常,那么该类的析构函数不会被调用
但是已经构造完成的对象会调用他自己的析构函数,即已经构造的数据成员和基类。 - 拷贝构造函数的默认版本会调用所有数据成员的拷贝构造函数(内置数据就是复制)
赋值操作符的默认版本会调用所有数据成员的赋值操作符(内置数据就是复制)
删除内存的责任通常称之为所有权,因此内存泄漏是由于被分配的内存所有权丢失了。
在编写一个函数之前,就要考虑编写它的所有的安全检查
strlen(NULL)会导致程序崩溃,strcpy()会把源字符串的’\0’也拷贝到目标区
char* strcpy(char* to,const char* form){
char* res = to;
while((*to++ = *form++) != '\0');
return res;
}