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

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

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

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

empty-line
1
empty-line
4

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

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

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

Интервал:

Закладка:

Сделать

weightedGPA = addCourse( semesterHours , gpa ) ;

/* Вызвать ту же функцию для подсчёта оценки с учётом нового курса */

weightedGPA += addCourse( hours , grade ) ;

gpa = weightedGPA / semesterHours ;

/* Вернуть новую оценку */

return gpa ;

}

} ;

В этом фрагменте я хотел, чтобы функция-член Student::addCourse( ) вызывала функцию — не член ::addCourse( ) . Без оператора :: вызов функции addCourse( ) внутри класса Student приведёт к вызову функции Student::addCourse( ) .

Функциячлен может использовать для обращения к другому члену класса - фото 186

«Функция-член может использовать для обращения к другому члену класса сокращённое имя, подразумевающее использование имени текущего экземпляра класса.»

[ Помни! ]

В данном случае вызов функции без указания имени класса приводит к тому, что она вызывает саму себя. Добавление оператора :: в начале имени заставляет осуществить вызов глобальной версии этой функции ( что нам и нужно ):

/* addCourse — перемножает количество часов и оценку */

float addCourse( int hours , float grade )

{

return hours*grade ;

}

_________________

161 стр. Глава 13. Работа с классами

class Student

{

public :

int semesterHours ;

float gpa ;

/* Добавить пройденный курс к записи */

float addCourse( int hours , float grade )

{

/* Вызвать внешнюю функцию */

weightedGPA = ::addCourse( semesterHours , gpa ) ;

/* Вызвать ту же функцию для подсчёта оценки с учётом нового курса */

weightedGPA += ::addCourse( hours , grade ) ;

gpa = weightedGPA / semesterHours ;

/* Вернуть новую оценку */

return gpa ;

}

} ;

Это похоже на то, как если бы я звал Стефана в собственном доме. Все решили бы, что я зову самого себя: ведь в моём доме, естественно, подразумевается фамилия Дэвис. Если же я имею в виду какого-то другого Стефана, то должен сказать "Стефан Спупендайк" или "Стефан Мак-Суини" либо использовать какую-нибудь другую фамилию. Так же действует и оператор разрешения области видимости.

Расширенное имя функции включает в себя её аргументы Теперь же мы добавляем к - фото 187

«Расширенное имя функции включает в себя её аргументы. Теперь же мы добавляем к полному имени ещё и имя класса, к которому принадлежит функция.»

[ Помни! ]

►Определение функции-члена...162

Функция-член может быть определена как внутри класса, так и отдельно от него. Когда функция определяется внутри класса, это выглядит так, как в приведённом далее файле Savings.h :

/* Savings — определение класса с возможностью делать вклады */

class Savings

{

public :

/* Объявляем и определяем функции-члены */

float deposit( float amount )

{

balance += amount ;

return balance ;

}

unsigned int accountNumber ;

float balance ;

} ;

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

_________________

162 стр. Часть 3. Введение в классы

/* SavingsClassInline — вызов фукции-члена, объявленной и определённой в классе Savings */

#include

#include

#include

using namespace std ;

#include " Savings.h "

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

{

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

setlocale (LC_ALL,".1251");

Savings s ;

s.accountNumber = 123456 ;

s.balance = 0.0 ;

/* Добавляем немного на счёт... */

cout << "Вкладываем на счёт 10 монет"

<< s.accountNumber << endl ;

s.deposit( 10 ) ;

cout << "Состояние счёта "

<< s.balance << endl ;

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

system( "PAUSE" ) ; return 0 ;

}

Так использовать класс Savings может теперь любой программист которому - фото 188

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

Директиваinclude заставляет препроцессор перед началом компиляции вставить - фото 189

«Директива#include заставляет препроцессор перед началом компиляции вставить вместо неё содержимое указанного в ней файла.»

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

Интервал:

Закладка:

Сделать

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

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


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

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

x