Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Void main ( )



{ B b (5);

cout<<endl<< “ b =” << b.GetY ();

cout<<endl<< “ a =” << b.GetX ();

}

В производный класс B включаются все данные и функции родителя А, при этом данное x -недоступно для прямого обращения из объектов класса B, но к нему можно обращаться из доступных компонентных функций класса А, которые стали полноправными членами класса B: b.GetX ();

Таким образом, через открытую функцию класса A GetX() мы получаем доступ к закрытому данному этого класса (x), а функция GetY () класса B предоставила доступ к закрытому данному (y) производного класса.

В main создается объект производного класса B, компонентному данному которого передается значение 5.

Данное класса А инициируется значением 0.

При создании объекта производного класса сначала автоматически вызывается конструктор базового класса, который создает объект базового класса, после этого вызывается конструктор производного класса, дополняющий объект составляющими производного класса.

В нашем случае сначала вызывается конструктор A (), который по умолчанию инициирует x значением 0, а затем вызывается B(5), инициирующий y значением 5.

Деструкторы автоматически вызываются в обратном порядке в соответствии с порядком уничтожения объекта. Сначала уничтожается то, что добавилось в производном классе, а затем и базовая часть.

Результат программы:

A! B!

b= 5

a= 0

DB DA

Наличие производного класса не запрещает создавать отдельно объекты базового класса, например:

A a (7);





Дата публикования: 2014-11-28; Прочитано: 225 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...