русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-09; просмотров: 531; Нарушение авторских прав


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

Второй пример

 

Предположим, например, что вы используете следующий базовый класс book внутри существующей программы:

 

class book

 

{

public:

book (char *, char *, int);

void show_book(void);

private:



char title[64];

char author[б 4];

int pages;

};

 

Далее предположим, что программе требуется создать класс library_card, который будет добавлять следующие элементы данных в класс book:

 

char catalog[64];

int checked_out; // 1, если проверена, иначе 0

 

Ваша программа может использовать наследование, чтобы породить класс library _card из класса book, как показано ниже:

 

class library_card : public book

{

public:

library_card(char *, char *, int, char *, int);

void show_card(void);

private:



char catalog[64] ;

int checked_out;

};

Следующая программа BOOKCARD.CPP порождает класс library_card из клacca book:

 

#include <iostream.h>

#include <string.h>

class book

{

public:

book(char *, char *, int);

void show_book(void);

private:



char title [64];

char author[64];

int pages;

};

book::book(char •title, char *author, int pages)

{

strcpy(book::title, title);

strcpy(book::author, author);

book::pages = pages;

}

 

void book::show_book(void)

{

cout << "Название: " << title << endl;

cout << "Автор: " << author << endl;

cout << "Страниц: " << pages << endl;

}

class library_card : public book

{

public:

library_card(char *, char *, int, char *, int);

void show_card(void) ;

private:



char catalog[64];

int checked_out;

};

library_card::library_card(char *title, char *author, int pages, char *catalog, int checked_out) : book(title, author, pages)

{

strcpy(library_card::catalog, catalog) ;

library_card::checked_out = checked_out;

}

void 1ibrary_card::show_card(void)

{

show_book() ;

cout << "Каталог: " << catalog << endl;

if (checked_out) cout << "Статус: проверена" << endl;

else cout << "Статус: свободна" << endl;

}

void main(void)

{

library_card card( "Учимся программировать на языке C++", "Jamsa", 272, "101СРР", 1);

card.show_card();

}

Как и ранее, обратите внимание, что конструктор library _card вызывает конструктор класса book для инициализации элементов класса book. Кроме того, обратите внимание на использование функции-элемента show_book класса book внутри функции show_card. Поскольку класс library_card наследует методы класса book, функция show_card может вызвать этот метод (show_book) без помощи оператора точки, как если бы этот метод был методом класса library _card.



<== предыдущая лекция | следующая лекция ==>
Class employee | ЧТО ТАКОЕ ЗАЩИЩЕННЫЕ ЭЛЕМЕНТЫ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.152 сек.