找到相关问题但不是确切的变体,所以我发布了一个非常简单的问题。 派生类继承了模板化的基础,我想调用基函数,怎么做呢?
template <class A>
class testBase {
public:
void insert(const A& insertType) {
// whatever
}
};
class testDerived : testBase<double> {
// whatever
};
int main() {
testDerived B;
// Compiler doesn't recognize base class insert
// How do you do this?
B.insert(1.0);
}
答案 0 :(得分:4)
需要public
继承(private
默认为class
):
class testDerived : public testBase<double> {
答案 1 :(得分:2)
一个类的默认访问级别为&#39; private&#39;。你基本上继承了&#39; testBase&#39;使用私有继承,以便testBase的公共接口不是testDerived的一部分。简单的解决方案:
class testDerived: public testBase<double> {...};
我希望C ++默认应用公共继承,因为这通常是一种更常见的情况。然后,我们可以改为使用结构。 :-D