что они является производным от
указывается, что они является производным от TFrameWindow и описывается единственная функция этого класса, именно, его конструктор. В конструкторе MyWindow предусмотрен вызов конструктора базового класса TFrameWindow с передачей ему двух параметров parent и title. Как мы уже видели, при фактическом вызове этого конструктора ему передаются значения параметров 0 и "Программа 25-1".
Далее в текст конструктора MyWindow включены действия, которые мы хотим выполнить при создании главного окна: вызов открытой функции-члена класса TWindow SetBkgndColor() для задания цвета фона окна, а также изменение действующих по умолчанию значений структуры Attr, определяющих координаты и размеры окна. В принципе эти действия не обязательно вносить в конструктор; их можно было выполнить и после создания экземпляра класса MyWindow, включив в функцию InitMainWindow следующие строки:
mywin->SetBkgndColor(COLOR_WINDOWFRAME+1); mywin->Attr.Х=20; mywin->Attr.Y=20; mywin->Attr.W=200; mywin->Attr.H=60;
Ясно, однако, что этим инициализирующим действиям самое место в конструкторе класса. Вернемся теперь к классу TApplication. Для того, чтобы переопределить его функцию-член Init-MainWindow(), мы создаем производный класс МуАрр:
/*Кпасс МуАрр приложения, производной от Tapplication*/
class МуАрр:public TApplication{ public:
virtual void InitMainWindow(void); //Замещаем функцию InitMainWindow
};
В описании класса МуАрр указано, что он является производным от TApplication; конструктор этого класса мы не описываем, так как в классе нет никаких данных, и явный конструктор для него не нужен, а в конструкторе базового класса (описанном в файле bc5\include\owl\applicat.h)
226 Глава 25
TApplication(const char
far*name=0,TModule*&gModule=::Module,TAppDictionary*appDict=0);
все параметры задаются по умолчанию, и его вызывать нет необходимости.
Описав в секции public класса МуАрр прототип виртуальной функции InitMainWindow(), мы заместили исходную функцию с тем же именем, описанную в базовом классе TApplication. Как отмечалось в гл. 24, при замещении виртуальной функции описатель virtual можно опустить; часто его оставляют ради наглядности.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий