Язык программирования C++. Вводный курс


Готовим сцену - часть 4


(для ввода) и ostream

(для вывода). В число их общих атрибутов входят:

·         информация о форматировании (представляется ли целое число в десятичной, восьмеричной или шестнадцатеричной системе счисления, число с плавающей точкой – в нотации с фиксированной точкой или в научной нотации и т.д.);

·         информация о состоянии (находится ли потоковый объект в нормальном или ошибочном состоянии и т.д.);

·         информация о параметрах локализации (отображается ли в начале даты день или месяц и т.д.);

·         буфер, где хранятся данные, которые нужно прочитать или записать.

Эти общие атрибуты вынесены в абстрактный базовый класс ios, для которого istream и ostream

являются производными.

Класс iostream – наш второй пример множественного наследования. Он предоставляет поддержку для чтения и записи в один и тот же файл; его предками являются классы istream и ostream. К сожалению, по умолчанию он также унаследует два различных экземпляра базового класса ios, а нам это не нужно.

 

 

Виртуальное наследование решает проблему наследования нескольких экземпляров базового класса, когда нужен только один разделяемый экземпляр. Упрощенная иерархия iostream

изображена на рис. 18.2.

 


 

 

                                                             ios

 


 

 

 

 

 

 

 

 

                                    istream                                    ostream

 

 


 

 

               ifstream                               iostream                                     ofstream

 

 


                                               fstream

 

Рис. 18.2. Иерархия виртуального наследования iostream (упрощенная)




Начало  Назад  Вперед



Книжный магазин