gpt4 book ai didi

c++ - 在外部类的实例中删除内部类的实例

转载 作者:搜寻专家 更新时间:2023-10-31 02:19:57 25 4
gpt4 key购买 nike

假设我在另一个类 Outer 中有一个类 Inner:

class Inner
{
public:
Inner();
~Inner();
};

class Outer
{
public:
Outer();
~Outer();
private:
Inner in;
};

现在在 main 中声明一个 Outer 类型的对象:

int main()
{
Outer out;

return 0;
}

对象 out 有一个 in 的实例作为其成员。如果我调用out的析构函数,它会反过来调用in的析构函数吗?如果不是,我如何实现类 Outer 的析构函数以成功调用类 Inner 的析构函数?

例如,如果我有一个用户应用程序,并且每个用户都有一个配置文件,当用户的帐户被删除时,我该如何做到这一点,用户的配置文件也会被删除?

最佳答案

当您的 class Outer 的实例 out 超出范围时,首先发生的是它的所有成员(也刚刚超出范围)他们的析构函数调用。然后 class Outer 的析构函数被调用。 C++ 标准保证了这一点,因此您的 C++ 编译器会自动生成此行为。

关于c++ - 在外部类的实例中删除内部类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33270296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com