Переопределение и вызов членов базового класса
В производном классе обычно добавляются новые члены к членам базового класса. Однако существует также возможность переопределения (или замещения) членов базового класса. Обычно используется переопределение функций-членов базового класса. Чтобы переопределить функцию-член базового класса в производном классе, достаточно включить ее прототип в объявление этого класса и затем дать ее определение. Прототипы переопределяемой функции в базовом и производном классах должны совпадать.
Иногда возникает необходимость вызвать функцию-член базового класса, а не ее переопределенный вариант, это можно сделать с помощью операции разрешения области видимости, применяемой в форме: <имя_класса>::<имя_члена>
Это дает возможность компилятору "видеть" за пределами текущей области видимости. Особенно часто это приходится делать при переопределении функций-членов. Переопределяемая функция-член может вызывать соответствующую функцию-член базового класса, а затем выполнять некоторую дополнительную работу (или наоборот).
В приведённом выше классе Dot была переопределена функция Print(). Тело функции содержит операторы, которые выводят на экран заголовок "Координаты точки " и имя точки. Далее вызывается функция Print(), которая является членом родительского класса Coord, с помощью оператора: Coord::Print();
Член родительского класса Coord функция Print() выводит на экран в той же строке координаты точки. В результате на экране появится, например, следующий текст:
Координаты точки A: x=4 y=5
