class Base{
//...
public:
int get()const{ // const
// Do something.
}
int get(int x){
// Do Someting.
}
//...
};
class Derived:public Base{
//....
public:
int get(){ // not const (not the same signature as the one is the base class)
//Dosomething
}
//...
};
Я знаю, что get () в классе Derived будет скрывать методы get () и get (int x) внутри базового класса. поэтому мой вопрос:
1) это перегрузка или переопределение?
2) делает, что get () const в производном классе что-то изменит (скрывает или не скрывает методы базового класса).
Цитата из книги на c ++:
"Распространенной ошибкой является скрытие метода базового класса, когда вы собираетесь его переопределить, путем
забыв включить ключевое слово const. const является частью подписи, и оставляя ее
изменяет подпись и, таким образом, скрывает метод, а не переопределяет его. «