class base {
public:
int foo();
int foo(int a);
int foo(char* b);
int doSomething(int);
}
class derived : public base
{
public:
int doSomething(int b);
}
int derived::doSomething( int b)
{
base::doSomething(b);
//Make Something else
}
int main()
{
derived d= new derived();
d->foo();
}
Теперь в методе foo (любом из них) я хочу вызвать более конкретную doSomething. если я создаю экземпляр производного класса, я хочу сделать doSomething производного класса, и если я создаю экземпляр базового класса, мне нужен doSomething базового класса, несмотря на то, что я вызываю метод foo, реализованный в базовом классе.
int base::foo()
{
//do something
makeSomething(5);
}