Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Обращение к членам класса



Обратиться к членам класса можно так:

 

nds.creditCard = 1С; cin >>

cin             .

Здесь nds — экземпляр класса NameDataSet (или отдельный объект типа NameDa- taSet) ; целочисленная переменная nds.creditCard — свойство объекта nds; член crecitCar d         имеет тип     int ,  тогда  как     другой член   этого                       объекта,

nds .                     имеет тип char [

Если не пользоваться компьютерным сленгом, приведенный пример можно объяс- нить так: в этом фрагменте программы происходит объявление объекта nds, который затем будет использован для описания покупателя. По каким-то соображениям про- грамма присваивает этому человеку кредитный номер 10 (понятно, что номер фик- тивный — я ведь не собираюсь распространять номера своих кредитных карт!).

Затем программа считывает имя и фамилию из стандартного ввода.

Теперь программа может работать с объектом nds как с единым целым, не обра- щаясь к его отдельным частям, пока в этом не возникает необходимость.

in t                                                  nds)

{

<<      имя : " ;

>>

 

"exit")

{

return 0;

 

<< "Введите фамилию:";

>> nds .

 

cout << "Введите номер кредитной карты:

>> nds.creditCard; return 1;

 

 

Глава 13. Классы в C++


//        — выводит содержимое множества данных void

{

<<

<< " "

<<

«

<<

«

}

int     nArg, char* pszArgs[])

{

const int MAX = 25;

// создать 25 объектов типа

 

// считывает имена, фамилии и номера

// кредитных карт

coat << "Считывает      карть:\п" "Введите в поле имени

« "для выхода из int index 0;

while                     index < MAX)

{

index++;

}

cout «

for (int i 0; i < index; i++)

{

);

}

return 0;

}

 

Пример программы

Приведенный ниже пример демонстрирует использование класса NameDataSet,

//      записывает            информацию

//        в     объектов

<stdio.h>

 

 

//        — содержит имя клиента

// и номер кредитной карты class

{

 

char          ;

char lastName [128]; int creditCard;

 

int                  nds)

{

cout <<             ";

 

144                        Часть HI. "Классическое" программирование


cin >>

 

if                     "exit") == 0)

{

return 0;

 

<< "Введите фамилию: "; cin >>

 

<< "Введите номер кредитной карты: cin »

return 1;

 

//        — выводит содержимое

// одного элемента NameDataSet void nds)

{

cout <<

<< " "

<<

«

«

<< "\n";

}

int     nArg, char* pszArgs[])

{

const int MAX = 25;

// создать 25 объектов типа NameDataSet NameDataSet

// считывает    фамилии и номера

// кредитных карт

cout << "Считывает имя/номер карты\п"

<< "Введите   в поле имени для int index

while                     index < MAX)

{

index++;

}

cout <<

for (int i 0; i < index; i++)

i

)

return

}

В  функции          () создается массив из 25 объектов класса NameDataSet, после

чего программа приглашает пользователя ввести необходимую информацию. Затем в       цикла while происходит вызов функции getData О, которая ожидает ввода с клавиатуры содержимого элементов массива. Цикл  прерывается,  если         () возврашает 0 или если количество заполненных объектов достигло максимального значения (в данном случае — 25). После этого созданные объекты передаются функ- ции displayData, которая выводит их на экран.

Глава 13. Классы в C++                                                                           145


Функция                         принимает  аргумент  типа                                  которому внутри функции  присваивается имя                                              Пока что не обращайте внимания на символ  — о нем речь пойдет в главе 15, "Создание указателей на объекты".

Внутри функции getData O происходит считывание строки из устройства стан- дартного ввода с последующей его записью в член                                                                                                             Если                     нахо- дит, что введенная строка— "exit" ,  функция                                                                                   возвращает С в функцию main (), сигнализируя, что пора выходить из цикла ввода информации. (Функция stricmp O сравнивает строки, не обращая внимания на регистр. Строки "EXIT", "exit " и другие считаются идентичными.) Если введена не строка               функция считывает из стандартного ввода фамилию и номер кредитной карты и записывает их в объект nds.

Функция dispIayData () выводит на дисплей все члены объекта nds. Результат работы этой программы будет выглядеть так:

Считывает имя/номер карты

Введите   в поле имени для выхода Введите Stephen

фамилию:

Введите номер кредитной карты: 123456 Введите Marshall

Введите фамилию: Smith

Введите номер кредитной карты:  90

Введите exit Элементы:

Stephen Davis/123456 Marshall Smith/567890

Вывод программы начинается с пояснения, как с ней работать. В первой строке я ввел свое имя (видите, какой я скромный!). Поскольку меня не зовут exit , про- грамма продолжает выполнение. Далее я ввел свою фамилию и номер кредитной кар- ты. Следующим элементом массива я ввел имя Marshall Smith и номер его кредит- ной карты. Затем я ввел строку exi t и таким образом прервал цикл заполнения объ- ектов. Как видите, эта программа не делает ничего, кроме вывода только что введенной информации.

 

 

146                   Часть "Классическое" программирование


Глава14





Работа с классами

Активизация объектов Добавление функции-члена Вызов функций-членов

Доступ к членам из функции-члена Разрешение области видимости Определение функции-члена Определение        вне класса Перегрузка функций-членов

 

рограммисты используют классы для объединения взаимосвязанных данных в один объект.   ниже класс Savings объединяет в себе баланс

и уникальный номер счета.

class Savings

{

 


 

};

 

void (


balance;

 

экземпляр класса Savings содержит одинаковые элементы:

 

 

Savings a; Savings b;


1; // этот счет не тот же, что и...

= 2; // ... этот

}

Переменная                                   отличается от переменной b. accountNumber. Эти

переменные различаются между собой так же, как баланс моего банковского счета от- личается от вашего (хотя они оба называются балансами).

 

 

Классы используются для моделирования реально существующих объектов. Чем ближе объекты C++ к реальному миру, тем проще с ними работать в про- граммах. На словах это звучит довольно просто, однако существующий сейчас класс   не предпринимает ничего, чтобы хоть в чем-то походить на на- стоящий банковский счет.


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 232; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.03 с.)
Главная | Случайная страница | Обратная связь