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.

Инициализацията на обекта s1 се осъществява чрез конструктораStudent(char*, char*, long, double), а инициализацията на обекта s2 –чрез генерирания от компилатора конструктор за копиране на класаStudent. Конструкторът за копиране на класа Student се обръща къмконструктора за присвояване на класа People (с аргумент s1). Врезултат данните name и egn на s1 се копират в съответните полета наобекта s2. След това се изпълнява тялото на “служебния” конструкторза копиране на класа Student, при което числовите полета facnom и uspна s2 се инициализират със стойностите 42444 и 6 на съответнитеполета на s1.б) в основния клас не е дефиниран конструктор за присвояванеВ този случай се генерират “служебни” конструктори за копиране задвата класа. Конструкторът за копиране на производния клас активираконструктора за копиране на основния клас.Нека се върнем към решението на предходната задача. КласътPStudent е производен на класа Student и в двата класа не садефинирани конструктори за присвояване. В резултат от изпълнението нафункцията:void main(){PStudent s1("Ivan Ivanov", "8206123422", 42444, 6.0, 350);s1.PrintPStudent();PStudent s2 = s1;s2.PrintPStudent();}се получава:Ime: Ivan IvanovEGN: 8206123422fac.nomer: 42444uspeh: 6Tax: 350Ime: Ivan IvanovEGN: 8206123422fac.nomer: 42444uspeh: 6Tax: 35048

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

Saved successfully!

Ooh no, something went wrong!