12.07.2015 Views

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

~People()~People()Инициализацията на обекта s1 се осъществява чрез конструктораPStudent(char*, char*, long, double, double), а инициализацията наобекта s2 – чрез генерирания от компилатора конструктор за копиранена класа PStudent. Конструкторът за копиране на класа PStudentизвиква конструктора за копиране на класа Student, който пък извикваконструктора за присвояване на класа People (с аргумент s1). Врезултат данните name и egn на s1 се присвояват на съответните полетана обекта s2, съгласно указания, в дефиницията на конструктора заприсвояване на класа People, начин. След това се изпълнява тялото наконструктора за копиране на класа Student, при което полетата facnomи usp на s2 се инициализират с 42444 и 6 съответно и накрая сеизпълнява тялото на конструктора за копиране на класа PStudent, прикоето полетo tax се инициализира с 350.· В производния клас е дефиниран конструктор за присвояванеВ този случай отначало се активира конструкторът за присвояване напроизводния клас. В неговия инициализиращ списък може да има или даняма обръщение към конструктор (за присвояване или обикновен) наосновния клас. Препоръчва се в инициализиращия списък на производнияклас да има обръщение към конструктора за присвояване на основнияклас, ако такъв е дефиниран. Ако не е указано обръщение къмконструктор на основния клас, инициализирането на наследените членовестава чрез подразбиращия се конструктор на основния клас. Акоосновният клас няма такъв, ще се съобщи за отсъствието на подходящконструктор.Така конструкторът за присвояване на производния клас чрездефиницията си определя как точно ще се инициализира наследенатачаст.Задача 162. Да се допълни и класът Student от предната задача сконструктор за присвояване.В случая това не е необходимо, защото генерирания от компилатораслужебен конструктор за копиране напълно ни устройва. Предложеното49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!