c++ 中的语法派生类/结构

Posted

技术标签:

【中文标题】c++ 中的语法派生类/结构【英文标题】:Syntax derived classes/stuctures in c++ 【发布时间】:2021-08-12 12:47:48 【问题描述】:

我正在修补一个 C++ 项目,在那里我发现了一个类似于下面的代码 sn-p。 我没有想象/理解这里发生了什么。我假设正在创建一个结构指针向量,尽管我不确定。我还试图了解是否还有其他用例需要定义类似的东西?有人可以帮忙吗?

class Thread
    ...
;
struct Threadpool : public std::vector<Thread*>
    ...
;

Threadpool Threads;

【问题讨论】:

请注意,std::vector 并不是真正设计用于继承的,例如它没有虚拟析构函数。您可以使用 private 继承,这使其更像是“具有”关系,然后最好根本不继承,而是拥有该类型的私有成员变量。 【参考方案1】:

sn-p 代码创建了一个以 Thread 指针为元素的向量。您需要设法分配/取消分配 Threadpool 实例的资源。我认为public std::vector&lt;std::unique_ptr&lt;Thread&gt;&gt; 更安全

【讨论】:

以上是关于c++ 中的语法派生类/结构的主要内容,如果未能解决你的问题,请参考以下文章

用于存储类层次结构中的任何类的 c++ 类

C++中的基类和派生类

C++笔记-类层次结构

继承与派生

获取派生类以显示与派生类的父类具有聚合关系的抽象类中的变量的 C++ 错误

派生自抽象基类并调用另一个类中的方法的 C++ 包装类,该类也派生自抽象基类