我需要在新类中声明构造函数和析构函数吗?

Posted

技术标签:

【中文标题】我需要在新类中声明构造函数和析构函数吗?【英文标题】:Do I need to declare a constructor and destructor in a new class? 【发布时间】:2021-02-15 22:07:46 【问题描述】:

我在我的数据结构类中注意到很多,它们声明了构造函数和析构函数。顺便说一下,这是针对 C++ 的。

【问题讨论】:

这能回答你的问题吗? What is The Rule of Three? 这是重复的:Should i define the default constructor? [closed] 答案将取决于您希望类对象在构造后处于什么状态。如果您对没有构造函数的默认行为感到满意,那么就没有必要编写构造函数; OTOH,如果您需要明确指定构造行为,那么编写构造函数就是这样做的方法。 这能回答你的问题吗? Should i define the default constructor? 【参考方案1】:

这些对象是否分配和保留内存?他们是否分配了必须释放的资源?

如果是这样,是的,需要一个析构函数。如果没有,没有。

这是理解C++ RIAA 的一部分,这是这里定义的方法。

struct 不需要构造函数,它们通常被视为没有内置智能的“哑数据”,但它们通常对于 class 是必需的对那些期望数据被正确初始化而不是归零的人调用new

【讨论】:

以上是关于我需要在新类中声明构造函数和析构函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

C语言里面构造函数和析构函数的运用办法

虚函数构造和析构函数执行顺序总结

构造函数和析构函数可以是虚函数吗

构造函数和析构函数可以是虚函数吗

具有私有构造函数和析构函数的类对象的向量?

构造和析构的次序