Язык С++ и программирование на нем. Рейзлин В.И. - 102 стр.

UptoLike

Составители: 

104
будет выполнен конструктор класса Derived. Вызов деструкторов осу-
ществляется в обратном порядке. Поскольку конструктор класса Base
может требовать наличия одного аргумента при обращении к нему, то
этот аргумент необходимо передать. Чтобы передать список аргументов
конструктору базового класса, этот список должен быть помещён в оп-
ределении конструктора производного класса, подобно тому, как это
делалось при инициализации данных абстрактного типа, являющихся
членами некоторого класса:
Derived::Derived (int arg): Base (arg) {
dmember = new int (arg);
}
Если конструктор базового класса не имеет аргументов или ис-
пользует аргументы по умолчанию, помещать пустой список в конст-
руктор производного типа не надо.
19.2. Защищенные члены класса
Для регулирования уровня доступа к членам классов используют-
ся служебные слова public и private. Для этих же целей введено ключе-
вое слово protected (защищенный).
Если класс А не служит базовым ни для какого другого класса,
то его защищенные члены ничем не отличаются от личных доступ к
ним имеют только функции-члены данного класса и дружественные
этому классу функции. Если же класс В является производным от A,
то пользователи как класса А, так и В по-прежнему не имеют доступа
к защищенным членам, но такой доступ могут иметь функции-члены
класса В и функции, привилегированные в В:
class Base{
private:
int privatem;
protected:
int protectedm;
};
class Derived: public Base{
memberF (){
cout<<privatem; // Ошибка!
cout<<protectedm; // Верно.
}
};