Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Class B

Читайте также:
  1. Articulatoty and Physiological Classification of English Sounds
  2. Class Flavobacteria
  3. Class Organization
  4. CLASS SYSTEM
  5. Classic Viruses
  6. Classification of community.
  7. Classification of English Consonants and Vowels
  8. Classification of Functional Styles of the English Language
  9. Classification of Functional Styles of the English Language

{ 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 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав