#include <iostream>
#include<map>
#include<string>
#include<vector>
class Base
{
public:
virtual void foo(int i) {
std::cout << "Base::foo(int i)" << std::endl;
}
virtual void foo() {
std::cout << "Base::foo()" << std::endl;
};
};
class Derived : public Base
{
public:
using Base::foo;
void foo() override {
std::cout << "Derived::foo()" << std::endl;
}
};
int main(const int ac, const char* const av[])
{
Base base;
base.foo();
base.foo(42);
Derived derived;
derived.foo();
derived.foo(42);//ERROR : Function unknown
}