此类之间有区别:
class Osoba{
public:
char* imie;
int wiek;
Osoba(char* imie, int wiek){
this->imie = imie;
this->wiek = wiek;
}
};
没有析构函数
~Osoba(){delete imie;}
还是带有它?两种情况都正确吗? 最佳答案
有一个重要的区别。
您是从构造函数中获取char* imie
的(意味着您没有对此new
进行编码),因此您不应对此进行delete
编码。然后,除非您知道自己在做什么,否则不要使用delete *imie;
。new
指针负责对其进行delete
的类/对象,以这种方式组织代码。