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.

}ако член-данните name и egn на класа People са обявени в секцияprotected. В този случай за инициализиране на наследените член-данние използван двуаргументният конструктор на People.Ако добавим подразбиращ се конструктор на класа People, т.е.People::People(){name = new char[1];strcpy(name, "");egn = new char[1];strcpy(egn, "");}и конструкторът за присвояване на класа Student има вида:Student::Student(const Student& st){facnom = st.facnom;usp = st.usp;}след изпълнението на фрагментаStudent s1("Ivan Ivanov", "8206123422", 42444, 6.0);Student s2 = s1;s2.PrintStudent();полетата name и egn на s2 се инициализират с празния низ, а facnom иуспех с 42444 и 6 съответно.Причината е, че в инициализиращия списък на конструктора заприсвояване на класа Student не е указан начинът за инициализиране начлен-данните на основния клас. В този случай инициализацията сеосъществява чрез конструктора по подразбиране на основния класPeople.Ще дадем още един пример.#include class base{public:base(int x = 99){b = x;}void f() const52

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

Saved successfully!

Ooh no, something went wrong!