我有两节课:
template<typename T>
class A{
public:
T& someMethod(std::string);
}
template<typename T>
class B: public A<T>{
public:
T& someMethod(T&,T&);
}
我的问题是知道我无法打电话
B b;
b.someMethod("HelloWorld");
因为我的编译器看不到
someMethod(std::string)
。你知道为什么会这样吗? 最佳答案
是的,这是名字隐藏。您应该只使用声明添加。
template<typename T>
class B: public A<T>{
public:
using A<T>::someMethod;
T& someMethod(T&,T&);
};
关于c++ - cpp多态性和继承-编译器看不到方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34925401/