Ласло Краус |
СИ2ОО1 Испит 4. 3. 2006. |
---|
Саставити на језику C++ следеће класе (класе опремити оним конструкторима, деструктором и оператором за доделу вредности, који су потребни за безбедно коришћење класа; грешке пријављивати изузецима типа једноставних класа које су опремљене писањем текста поруке):
dat<<datum
).
dat<<osoba
).
lst+=pod
). Може да се постави на први елемент листе, да се прелази на следећи елемент, да се испита да ли постоји текући елемент, да се приступи податку у текућем елементу са могућношћу промене вредности податка и да се текући елемент избаци из листе (при томе следећи елемент постаје текући). Грешка је ако текући елемент не постоји у моменту покушаја приступања елементу или избацивања елемента.
djak+=ispit
). Може да се одреди средња оцена положених испита. У датотеку се поред општих података пише и средња оцена положених испита.
skola+=djak
). Може да се дохвати ђак са највећом средњом оценом положених испита без могућности промене података о том ђаку.
(10 поена) Саставити на језику C++ главни програм који направи школу са два ђака са по три полагана испита и испише на главном излазу податке о ђаку са бољим просеком.
а) Да ли тип аргумента конструктора неке класе може бити: (1) сама та класа, (2) показивач на ту класу, (3) упућивач (референца) на ту класу?
б) Објаснити разлику између појмова "преклапање имена" (name overloading) и "редефинисање" (overriding) метода.
в) Да ли је позив методе са динамичким везивањем (полиморфне методе) ефикаснији од позива методе са статичким везивањем и зашто?
г) Којим редоследом треба навести рутине за обраду (handlers) изузетака основне класе и класе изведене из те основне класе? Објаснити разлог.
д) Да ли се аутоматско генерисање функције из шаблона врши при позивању дате функције у време извршења или у време превођења? Образложити одговор.
Copyright © 2010, Laslo Kraus
Последња ревизија: 30.8.2010.