Я работаю над проектом, который использует наследование классов и требует множества перегрузок как в базовом, так и в производном классе, я упростил код, но я не хотел бы без необходимости копировать и вставлять, так как это должно быть то, для чего наследование.
#include <iostream>
class Base
{
public:
Base() = default;
//base const char* overload
void foo(const char* message)
{
std::cout << message << std::endl;
}
//other overloads ...
};
class Derived : public Base
{
public:
Derived() = default;
//derived int overload
void foo(int number)
{
std::cout << number << std::endl;
}
};
int main()
{
Derived b;
b.foo(10); //derived overload works
b.foo("hi"); //causes error, acts as if not being inherited from Base class
return 0;
}
using Base::foo;
в телоDerived
. В противном случае видны толькоDerived::foo
перегрузки. Проблема не в разрешении перегрузки, а в поиске имени. - person Igor Tandetnik   schedule 12.04.2020