此类之间有区别:

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的类/对象,以这种方式组织代码。

10-08 12:01