【发布时间】:2021-07-25 20:27:45
【问题描述】:
我试图理解为什么我的代码不使用类名的析构函数。实际上我写了两个类。第一个称为 Name,第二个称为 Person,它们有一个指向对象 Name 的指针。我不明白的是为什么程序不调用 Name 的析构函数,因为我认为当我写“new”时我创建了一个新对象,所以它必须在关闭程序之前调用类 Name 的析构函数。
你能解释一下我的理解有什么问题吗?谢谢!
class Name
{
private:
string name;
public:
Name(string name) : name(name) { cout << "Hello " << name << endl; }
~Name() { cout << "See you soon " << name; }
};
class Person
{
private:
Name* myname;
public:
Person(string name) { myname = new Name(name); }
~Person() { cout << "Exit" << endl; }
};
int main()
{
Person("Marc");
Person("Alex");
}
【问题讨论】:
-
当你写
new时,你明确地说“我稍后会打电话给delete”。其他人说小猫死了,对此不确定。 -
当你使用
new时,“它”不需要做任何事情。清理工作由您负责。 -
因为对象永远不会被销毁?
标签: c++ object pointers destructor