c++ 如何从派生类调用派生类中重载的模板类函数
c++ How do you call a template class function that is overloaded in the derived class, from the derived class?
有没有办法在派生类中重载基模板类函数,并且仍然能够调用基类函数,如下所述?
template <class A>
class testBase {
public:
void insert() {
// Whatever
}
};
class testDerived : public testBase<double> {
private:
void insert(int a) {
// something
}
};
int main() {
testDerived B;
// Compiler doesn't recognize overloaded insert,
// How do you do this?
B.insert();
}
您遇到的问题称为名称隐藏。
可以通过按名称限定基类函数来调用基类函数:
B.testBase<double>::insert();
或者通过"取消隐藏"它,通过使用 using 声明在派生类中声明它:
class testDerived : public testBase<double> {
public:
using testBase<double>::insert;
private:
void insert(int a) {
// something
}
};
添加
public:
using testBase<double>::insert;
到testDerived
的定义。 这将使基的隐藏成员在派生类中可用
相关文章:
- 如何通过派生类函数更改基类中的向量
- 调用不在基类中的派生类函数而不进行动态强制转换,以最大程度地提高性能
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何使派生类函数在调用时始终调用相同的基类函数?
- 有没有办法在没有虚拟的情况下使用基类指针调用派生类函数
- 如何从派生类函数中调用虚拟函数
- C++通过 const 引用传递时不调用派生类函数
- 如何从包含基类指针的容器中调用派生类函数(基于其类型)?
- 从多重继承中的派生类函数调用适当的父类函数
- 无法访问派生类函数内的基类的受保护数据成员
- 调用不属于基类的派生类函数的最佳方法是什么?
- 如何在C++中正确表达具有相同实现的两个派生类函数?
- 异质集合调用派生类函数 c++
- 如何从指针调用派生类函数到基类类型 (C++)
- 使用抽象指针调用派生类函数
- 通过指针调用基本虚拟方法从派生类函数
- 如何与基类中的派生类函数交朋友
- 如何使派生类函数作为线程的启动例程?
- 使用具有抽象基类指针的映射并调用派生类函数
- 为什么派生类函数参数取基类函数参数的值