Есеп 1. Мұрагерлік механизміне мысал.
#include using namespace std;
class FirstClass // базалық класс
{
protected: // value өрісі үшін модификатор int value;
public:
FirstClass()
{
value = 0;
}
FirstClass( int input )
{
value = input;
}
void show_value()
{
cout << value << endl;
}
};
class SecondClass : public FirstClass // туынды класс
{
public:
// SecondClass классының конструкторы FirstClass классының конструкторын шақырады
SecondClass() : FirstClass ()
{}
SecondClass(int inputS) : FirstClass (inputS) // inputS FirstClass классының конструкторына параметр ретінде беріледі
{}
void ValueSqr () // value мәнін квадраттау. Protected модификатор пайдаланғандықтан value мәнін алуға болады
{
value *= value;
}
};
int main()
{
setlocale(LC_ALL, "rus");
FirstClass F_object(3); // базалық класс объектісі cout << "value F_object = ";
F_object.show_value();
SecondClass S_object(4); // туынды класс объектісі cout << "value S_object = ";
S_object.show_value(); // базалық класс әдісін шақыру
S_object.ValueSqr(); // value мәнін квадраттау cout << "квадрат value S_object = "; S_object.show_value();
//F_object.ValueSqr(); // базалық класс туынды класс әдістеріне қол жеткізе алмайды
cout << endl; return 0;
}
Есеп 2. Аталық және туынды классға мысал.
#include using namespace std;
class Unit //базалық класс
{
protected:
int health; public:
void showHealth() { cout << "Unit health: " << health << endl; }; Unit(): health(10) { } //үнсіздік конструкторы
Unit(int a): health(a) { } //параметрлік конструктор
};
class Soldier : public Unit
{
private:
int damage; public:
void showDamage(){cout << "Sodier damage: " << damage << endl;}
//базалық класс үшін параметр үнсіздік бойынша Soldier():damage(20) { }
Soldier(int a):damage(a) { } // health=10
// Unit(int a), т.е. health=a конструкторы қолданылады Soldier(int a, int b):Unit(a),damage(b) { }
};
int main()
{
Soldier hercules(30); hercules.showHealth(); hercules.showDamage(); Soldier achilles(40,50); achilles.showHealth(); achilles.showDamage(); return 0;
}
Достарыңызбен бөлісу: |