C++ C++;类从类型继承

C++ C++;类从类型继承,c++,inheritance,C++,Inheritance,我创建了一个类型,它是字符串优先级队列的列表(不是我的主意,我必须这样做): typedef列表L; L迈利斯特; 现在我需要创建一个类M,它将从这个类型继承。从我承认的情况来看,我需要使用模板来实现这一点,但我仍然不知道如何做到这一点,而且我还没有在网上找到任何东西 如何使类从类型继承?简单如下: class foo : L { // Note this is private inheritance }; 类型别名只是另一个类型的名称,而不是其本身的类型。由于std::list是一个类模板

我创建了一个类型,它是字符串优先级队列的列表(不是我的主意,我必须这样做):

typedef列表L;
L迈利斯特;
现在我需要创建一个类M,它将从这个类型继承。从我承认的情况来看,我需要使用模板来实现这一点,但我仍然不知道如何做到这一点,而且我还没有在网上找到任何东西

如何使类从类型继承?简单如下:

class foo : L { // Note this is private inheritance
};
类型别名只是另一个类型的名称,而不是其本身的类型。由于
std::list
是一个类模板,并且
L
指定了一个完整的专门化,所以您可以直接进行


只需确保不要以任何多态方式使用它,包括
delete
ing指向
std::list
的指针。它不是为它设计的,因为它缺少一个虚拟析构函数。

这些是
std::list
std::priority\u queue
std::string
,还是您自己的版本?如果是前者,你为什么要从他们那里继承?继承标准库类型并不违法,但很多人似乎认为这是一个坏主意。为什么你会有麻烦;它应该与任何其他继承没有区别。@MikeMB您不能从像
myList
这样的对象继承;只能从类类型中继承。@DanielH是的,它们来自std。我需要从它们继承,因为这是我在学校的家庭任务。为了学习新的结构等等,我们通常不得不做一些非常奇怪和无用的事情。我只是让它工作,但我不确定我是否做对了。将“typedef list L;”放在main()之外的样式好吗?确切地说,在它之前?@Daniel:对不起,小姐读了我手机上的帖子。当然,您必须从
L
@Ania继承,我不会使用该typedef,但它可能会很有用,具体取决于您代码的其余部分。但是,如果您确实拥有它,那么给它一个比
L
更具描述性的名称可能是个好主意,至少类似于
QueueContainer
这样的名称,它告诉您它包含队列。问题是,编译器没有看到L类型,我可以合法地将它放在类定义之上,在main()之外吗?@Ania-我不知道你的完整设置是什么。但如图所示,我所做的工作是按原样进行的。@StoryTeller,但我不能这样做
lt=new foo();t->thing();删除t,因为列表没有虚拟析构函数:(谢谢!听起来可能是个愚蠢/简单的问题,但我觉得要求我继承某一类型的内容很奇怪,我从来没有这么做过。@Ania-这一点都不愚蠢。这只是新手在理解所有含义之前最好不要做的事。你问这个问题肯定不是一件愚蠢的事。
class foo : L { // Note this is private inheritance
};