Читайте также:
|
|
{ A objA;
}
Використаємо в програмі 17.9 включення замість успадковування. Класи manager та scientist є похідними класів employce та student. В новій програмі 17.13 ці класи міститимуть копії класів employce та student як атрибути.
Далі приведений лістинг програми 17.13.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
const int LEN=80;
class student
{private:
char school[LEN];
char degree[LEN];
public:
void getedu()
{cout<<”School:”;
cin>>school;
cout<<”Degree:”;
cin>>degree;
}
void putedu() const
{cout<<”\n School=”<<school;
cout<<”\n Degree=”<<degree<<endl;
}
};
//------------------------------------------
class employce
{private:
char name[LEN];
unsigned long number;
public:
void getdata()
{cout <<”\n Введіть ПІП: “;cin>>name;
cout <<”\n Введіть номер: “;cin>>number;
}
void putdata() const
{cout<<”\nПІП=”<<name;
cout<<”\nНомер=”<<number;
}
};
//--------------------------------------------------
class manager
{private:
char title[LEN];
double dues;
employce emp;
student stu;
public:
void getdata()
{emp.getdata();
cout<<”\n Посада=”;cin>>title;
cout<<”\n Внески=”;cin>>dues;
stu.getedu();
}
void putdata() const
{emp.putdata();
cout<<”\n Посада=”<<title;
cout<<”\n Внески=”<<dues;
stu.putedu();
}
};
//-------------------------------------------------
class scientist
{private:
int puts;
employce emp;
student stu;
public:
void getdata()
{ emp.getdata();
cout<<”\n Публікації=”;cin>>puts;
stu.getedu();
}
void putdata() const
{ emp.putdata();
cout<<”\n Публікації=”<<puts;
stu.putedu();
}
};
//------------------------------------------------
class laborer
{private:
employce emp;
public:
void getdata()
{emp.getdata();}
void putdata() const
{emp.putdata();}
};
//----------------------------------------------
int main()
{
clrscr();
manager m1;
scientist s1,s2;
laborer l1;
cout<<endl;
cout<<”\n Manager 1:”;
m1.getdata();
cout<<”\n Scientist 1:”;
s1.getdata();
cout<<”\n Scientist 2:”;
s2.getdata();
cout<<”\n Laborer 1:”;
l1.getdata();
cout<<”Manager1\n”;
m1.putdata();
cout<<”Scientist1\n”;
s1.putdata();
cout<<”Scientist2\n”;
s2.putdata();
cout<<”Laborer1\n”;
l1.putdata();
return 0;
}
Програма 17.13
Класи manager та scientist містять члени об’єктного типу
employce emp;
student stu;
Роль успадковування при розробці програм
Процес розробки програм серйозно змінився після появи ООП. Це зв’язано не лише з використанням класів, але і з використанням успадковування. Розглянемо його етапи.
Нехай програміст А створює певний клас. Програмісту В подобається цей клас, але він вирішує його удосконалити, додавши якісь нові члени. Він, в свою чергу, створює клас, похідний від першого.
Наступний програміст може не мати доступу до вихідного коду, написаного програмістом А чи програмістом В. Але в С++ існує можливість повторного використання коду, тому і цей третій програміст може використовувати і доповнювати роботу своїх попередників.
Зауважимо, що при такій організації роботи відмінності між розробниками системного і прикладного програмного забезпечення стають неістотними. Отож ООП робить програмування більш гнучким і, в той же час, складнішим.
Дата добавления: 2015-01-29; просмотров: 20 | Поможем написать вашу работу | Нарушение авторских прав |