Стефан Дэвис - С++ для чайников .

Здесь есть возможность читать онлайн «Стефан Дэвис - С++ для чайников .» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2007, ISBN: 2007, Издательство: Издательский дом Вильямс. Компьютерное издательство Диалектика, Жанр: Технические науки, Программирование, Программы, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

С++ для чайников .: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «С++ для чайников .»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

empty-line
1
empty-line
4

С++ для чайников . — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «С++ для чайников .», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Свойство наследования транзитивно. Например, если я определю новый класс GraduateStudent как подкласс класса student , то он тоже будет наследником person . Это значит, что будет выполняться следующее: если GraduateStudent ЯВЛЯЕТСЯ Student и Student ЯВЛЯЕТСЯ Person , то GraduateStudent ЯВЛЯЕТСЯ Person .

»¦¦¦¦¦¦¦¦¦¦

Ещё один небольшой побочный эффект связан с изменениями, вносимыми в программное обеспечение. Предположим, что вы выполняете наследование некоторого существующего класса. Позже выясняется, что базовый класс работает не совсем так, как требуется порождённому классу, или что в нём имеется ошибка. Изменение базового класса может привести к неработоспособности всего кода, который использует этот базовый класс.

►Как наследуется класс...234

Здесь приведён пример уже рассмотренного классаGraduateStudent который - фото 258

«Здесь приведён пример уже рассмотренного классаGraduateStudent , который дополнен несколькими членами.»

[ Диск ]

/* InheritanceExample — пример наследования, при */

/* котором конструктор наследника */

/* передаёт информацию конструктору базового класса */

_________________

234 стр. Часть 4. Наследование

#include

#include

#include

#include

using namespace std ;

/* Advisor — пустой класс */

class Advisor { } ;

const int MAXNAMESIZE = 40 ;

class Student

{

public :

Student( char *pName = "no name" )

: average( 0.0 ) , semesterHours( 0 )

{

strncpy( name , pName , MAXNAMESIZE ) ;

name[ MAXNAMESIZE - 1 ] = '\0' ;

cout << "Конструктор Student "

<< name

<< endl ;

}

void addCourse( int hours , float grade )

{

cout << "Добавляем оценку для " << name << endl ;

average = ( semesterHours * average + grade ) ;

semesterHours += hours ;

average = average / semesterHours ;

}

int hours( ) { return semesterHours ; }

float gpa( ) { return average ; }

protected :

char name[ MAXNAMESIZE ] ;

int semesterHours ;

float average ;

} ;

class GraduateStudent : public Student

{

public :

GraduateStudent( char *pName , Advisor & adv , float qG = 0.0 )

: Student( pName ), advisor( adv ) , qualifierGrade(qG)

{

cout << "Конструктор GraduateStudent "

<< pName

<< endl ;

}

float qualifier( ) { return qualifierGrade ; }

protected :

Advisor advisor ;

_________________

235 стр. Глава 20. Наследование классов

float qualifierGrade ;

} ;

int main( int nNumberofArgs , char* pszArgs[ ] )

{

/* печать кириллицы, если Вы не установите программки gccrus.exe и g++rus.exe */

setlocale ( LC_ALL ,".1251" ) ;

Advisor advisor ;

/* Создание двух типов студентов */

Student llu( "Су N Sense" ) ;

GraduateStudent gs( "Matt Madox" , advisor , 1.5 ) ;

/* Добавляем им оценки */

llu.addCourse( 3 , 2.5 ) ;

gs.addCourse( 3 , 3.0 ) ;

// Выводим их

cout << "Оценка Matt = "

<< gs.qualifier( )

<< endl ;

/* Пауза для того, чтобы посмотреть на результат работы программы */

system( "PAUSE" ) ; return 0 ;

}

В этой программе продемонстрировано создание и использование двух объектов — Student и GraduateStudent . Вывод программы выглядит следующим образом.

Конструктор Student Су N Sense Конструктор Student Matt Madox Конструктор - фото 259

Конструктор Student Су N Sense

Конструктор Student Matt Madox

Конструктор GraduateStudent Matt Madox

Добавляем оценку для Су N Sense

Добавляем оценку для Matt Madox

Оценка Matt = 1.5

Press any key to continue...

Использование подкласса...236

Класс Student определён как обычно. Определение класса GraduateStudent несколько отличается — наличием после имени класса двоеточия с последующим public Student . Тем самым класс GraduateStudent объявляется как подкласс класса Student .

Ключевое словоpublic говорит о том что может быть наследованиеprotected а - фото 260

«Ключевое словоpublic говорит о том, что может быть наследованиеprotected , а такжеprivate — но эти вопросы лежат за пределами данной книги.»

[ Советы ]

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

■■■

■ GraduateStudent — подкласс Student;

■ Student — базовый, или родительский класс для GraduateStudent;

■ GraduateStudent наследует Student;

■ GraduateStudent расширяет Student.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «С++ для чайников .»

Представляем Вашему вниманию похожие книги на «С++ для чайников .» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «С++ для чайников .»

Обсуждение, отзывы о книге «С++ для чайников .» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x