Основы работы в С++

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

p>

 

Цели работы:

? изучение наследования, преимущества и недостатки;

? изучение композиции;

? изучение правил определения наследования и композиции;

? изучение форм наследования;

? изучение инициализаторов;

? принцип подстановки;

? наследование и композиция - что выбрать.

Задача

а) Создать иерархию классов игра - спортивная игра - волейбол. Определить конструкторы, деструктор, оператор присваивания и другие необходимые функции. Продемонстрировать работу классов.

 

#include

#include namespace std;igra

{:kol_igrokof;(char *vid_igri, char *atributi, int kol_igrokof, char *vremya_igri) {(igra:vid_igri, vid_igri);(igra:atributi, atributi);>kol_igrokof=kol_igrokof;(igra:vremya_igri, vremya_igri);};

show_spisok(void) {cout << vid_igri << endl;<<atributi<<endl;<<vremya_igri<<endl;};

show_kol(int) {cout << kol_igrokof << endl;};vid_igri[64];atributi[64];vremya_igri[64];

 

};

sport_play: public igra

{:_play (char *vid_igri, char *vremya_igri, char *tematika, int kol_igrokof, char*atributi): igra (vid_igri, atributi, kol_igrokof, vremya_igri)

{(this->vremya_igri, vremya_igri);

 

strcpy (this->tematika, tematika);(this->atributi, atributi);>kol_igrokof=kol_igrokof;

};show_sport_play(void)

{<< vid igri:;_spisok();<<endl;<<tematika: <<tematika;<< kol =;<<endl;_kol (kol_igrokof);

cout <<endl;

};:

tematika[64];

};

volebol: public igra

{:(char *vid_igri, char *vremya_igri, char *kol_match, int kol_igrokof, char*atributi): igra (vid_igri, atributi, kol_igrokof, vremya_igri)

{(volebol:vremya_igri, vremya_igri);(volebol:kol_match, kol_match);(volebol:atributi, atributi);>kol_igrokof=kol_igrokof;

};show_volebol(void)

{<< nazvanie:;_spisok();<<endl;<<kolmatch: << kol_match;<< Kol =;<<endl;_kol (kol_igrokof);<<endl;

};:kol_match[64];

};main(void)

{vid_igri[64];vremya_igri[64];kol_match[54];atributi[64];tematika[64];kol_igrokof;kol_igrokof;<< "__________________;o (vid_igri, atributi, kol_igrokof, vremya_igri);<< SPISOK<<endl;.show_spisok();_play as (vid_igri, vremya_igri, tematika, kol_igrokof, atributi);<< "____________________Igra<<endl;.show_sport_play();das (vid_igri, vremya_igri, kol_match, kol_igrokof, atributi);<< "__________________VOLEBOL<<endl;.show_volebol();

system (pause);0;

}

b) Создать класс колесо, имеющий радиус. Определить конструкторы и методы доступа. Создать класс автомобиль, имеющий колеса и строку обозначающую фирму-производителя. Создать производный класс грузовой автомобиль, отличающийся грузоподъемностью. Определить конструкторы, деструктор и другие необходимые функции. Продемонстрировать работу классов.

 

 

#include

#include namespace std;koleso

{:rad;(double rad) {>rad=rad;

}set_rad (double rad)

{this->rad=rad;}show_rad(void) {<<rad<< endl;

};

};afto:public koleso

{:spisok[20];(char*spisok, double rad):koleso(rad)

{>rad=rad;(this->spisok, spisok);

}set_iz1 ()

{>rad=rad;(this->spisok, spisok);

}show_ss(void)

{<<spisok<<endl;

};

};gruzavto: public afto {:pod;(double rad, char*spisok, double pod): afto (spisok, rad)

{>pod=pod;>rad=rad;(this->spisok, spisok);

}set_ss() {this->rad=rad;(this->spisok, spisok);>pod=pod;}show_ss3 (void)

{<<pod<<endl;

};

};main(void)

{bool t=false;pod;spisok;a(rad);(t=true)

{int d;rad;.set_rad(rad);.show_rad();}{;}

}spisok;a1 (spisok, rad);.show_ss();}{;}

}a2 (rad, spisok, pod);<< "____gruzovoeavto<<endl;.show_ss3 ();(t=true)

{int d;pod;a2 (rad, spisok, pod);.show_ss3 ();

}{;}}<< "________________gruzovik<<endl;.show_ss3 ();(pause);0;

}

 

Контрольне вопросы

) Насле?дование - механизм объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Простое наследование

Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).

Множественное наследование

При множественном наследовании у класса может быть более одного предка. В этом случае класс наследует методы всех предков. Достоинства такого подхода в большей гибкости. Множественное наследование реализовано в C++. Из других языков, предоставляющих эту возможность, можно отметить Python и Эйфель. Множественное наследование поддерживается в языке UML.

) Композиция включает в себя несколько весьма важных составляющих, которые и определяют, насколько легко будет работать с приложением. Композиция в программировании включает в себя расположение управляющих элементов, эффективное использование свободного пространства и \ позволительность\

) Использование наследования для построения новых классов сэкономит вам значительное время и силы на программирование. Объектно-ориентированное программирование широко использует наследование, позволяя вашей программе строить сложные объекты из небольших легко управляемых объектов.

) Внутри конструктора производного класса ваша программа должна вызвать конструктор базового класса, указывая двое?/p>