Создать иерархию типов – файл для чтения, файл для записи и файл для чтения и записи
У меня есть 4 задачки,первые 3 я сделал,осталась только эта:
Создать иерархию типов – файл для чтения, файл для записи и файл для чтения и записи. Классы должны иметь конструкторы, включая конструктор копирования, виртуальные деструкторы, перегруженные функции вывода в поток и ввод из потока.
Не могу понять какой вид должна иметь эта иерархия и какая структура программы.Подскажите пожалуйста
Ответы (1 шт):
Похоже эта задача больше на развитие креативного мышления. :) Ну и на закрепление материала по наследованию.
Ну один из вариантов (классический пример на наследование):

Здесь делаете class myfile полностью виртуальным, т.е. его объекты нельзя создавать. В нем держите дескриптор потока или указатель на файл, если будете работать с файловыми функциями, а не потоками. В class imyfile определяете только оператор ввода operator>> - это будет файл только для чтения. В class omyfile определяете только оператор выводаoperator<< - это будет файл только для записи. Ну и от них наследуется class iomyfile - который от предков получит и ввод и вывод в файл.
Другой вариант - когда есть class iomyfile и от него наследуют imyfile и omyfile.

Базовый класс может всё, а наследники - какое-то подмножество его функционала. Так вы ограничиваете функционал базового класса - по сути создаете интерфейсы.
В любом случае это больше демонстрационные примеры.