首页 > 解决方案 > 删除其中包含对象的结构

问题描述

我有一个这样的结构:

struct CalendarEntry
{
    Date DueDate;
    std::string Subject;
    CalendarEntry* pLeft = nullptr;
    CalendarEntry* pRight = nullptr;
};

Date 是一个没有动态数据的类,使用默认构造函数。如果我有一个结构对象,我必须先删除 Date-Object 还是自动调用 Date 的析构函数?

CalendarEntry* mRoot = new CalendarEntry;
//delete &mRoot->DueDate;
delete mRoot;
mRoot = nullptr;

另一个小问题,我有一个结构,它只在一个类中使用。目前我在类上方的标题中定义了它。但是当它只在类内部使用时,将它在类内部定义为私有会更好吗?

感谢您的输入。

标签: c++

解决方案


如果我有一个结构对象,我必须先删除 Date-Object

不。

还是自动调用 Date 的析构函数?

是的。成员和基础子对象等子对象总是被超级对象的析构函数销毁。


推荐阅读