考虑这个简单的代码:
class A {
};
class V1: vector<A *>{
// my nice functions
};
如果我有一个 V1 的实例,那么任何从 A 派生的对象都可以插入到向量中,在这里可以。
现在,假设我有两个名为 B 和 C 的简单类都派生自 A;
如果我有一个 V1 的实例,那么 B 和 C 的指针都可以插入到这个向量中,我想这是正确的吗?
如果是这样,我如何从 V1 派生一个向量以确保只插入 B 指针?
我正在考虑使用模板,但在这种情况下,我已经知道类的基础,并且在模板中你可以使用任何东西,对吧?
不知道我是否清楚,我的英语没有帮助......
我是否必须重写 push_back 和其他函数来检查模板参数是否来自 A?
拜托,不需要谈论我正在使用的提升或语法等......我真的只是想了解这个概念......我还不清楚。我对此有一些答案,但我想它们涉及太多演员来检查东西,我来这里是为了知道是否有更好的答案......
谢谢!
乔纳森
ps:你们能回答我的评论吗?有时我在这里问一些东西,然后最好的回答者来了,然后就不回来了:(。或者我应该问另一个问题而不是评论提问?