Overloading функции базового класса
Не может ли кто объяснить с технической точки зрения, почему
в наследуемом классе не разрешена перегрузка метода, который
определен в базовом классе?
Вот пример:
/*Base.h*/
class Base {
public:
~virtual Base(void);
void add(void);
protected:
Base(void);
};
/*Base.cpp*/
Base::Base(void) {};
~Base::Base(void) {};
void Base::add(void) {};
/*Extended.h*/
class Extended : public Base {
public:
Extended(void);
~Extended(void);
void add(int i);
};
/*Extended.cpp*/
Extended::Extended(void) : Base() {};
~Extended::Extended(void) {};
void Extended::add(int i) {
add(); // <--- вот здесь no matching function for call to `Extended::add()'
};