gpt4 book ai didi

C++:我可以编写一个从 T 派生的模板类吗?

转载 作者:行者123 更新时间:2023-11-30 00:39:23 25 4
gpt4 key购买 nike

我不太确定如何用英语表达这个,但我想做这样的事情:

template <class T>
class derived: public T
{ blah };

基本上,我有一个模板类,但我从模板中指定的类派生了一个新类? IE。所以我不一定会在编译时知道这个类。

这可能吗?
如果是这样,它的语义是什么?

例如,假设我正在尝试编写一个“父”类。为了这个例子的目的,假设它是一个树父。树的父类,本身就是一棵树(因此它继承自树),但也有一个指向子树的引用 vector 。
但是,父类本身不一定是树;它可以是任何类,这样我就可以写这样的东西:

Parent<tree> treeParent;
Parent<shrub> shrubParent;

最佳答案

是的。这是可能的。尝试这样做。

I wouldn't necessarily know the class at compile time.

我认为,您的意思是“在定义类模板时我不一定知道类。”

当你编译时,你已经定义了类模板,并在你的代码中使用它,将模板参数传递给它,这意味着你在编译时知道类(即模板参数)。如果您不知道要用作 base 的类,那么您甚至无法编译代码。

关于C++:我可以编写一个从 T 派生的模板类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8945948/

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