Читаем С++ для "чайников" . полностью

«Можно использовать альтернативное ключевое слово struct, которое полностью идентично class, с предполагаемым использованием объявлений public

[Советы]

После ключевого слова public идёт описание полей класса. Как видно из листинга, класс NameDataSet содержит поля имени, фамилии и номера кредитной карты. Первые два поля являются символьными массивами, а третье имеет тип int ( будем считать, что это и есть номер кредитной карты ).

«Объявление класса содержит поля данных, необходимые для описания единого объекта.»

[Помни!]

В последней строке этого фрагмента объявляется переменная nds, которая имеет тип NameDataSet. Таким образом, nds представляет собой запись, описывающую отдельного человека.

Говорят, что nds является экземпляром класса NameDataSet и что мы создали этот экземпляр, реализовав класс NameDataSet. Поля firstName и остальные являются членами, или свойствами класса. 

<p id="chapter12.3"><strong>►Обращение к членам класса...150</strong></p>

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

    NameDataSet nds ;

    nds.creditCard = 10 ;

    cin >> nds.firstName ;

    сin >> nds.lastName ;

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

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

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

«Здесь я использую для хранения имени массив символов вместо типа string

[Помни!]

_________________

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

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

    /* DataSet — хранение связанных данных в массиве объектов */

    #include

    #include

    #include

    #include

    using namespace std ;

    /* NameDataSet — класс для хранения имени и номера кредитной карты */

    class NameDataSet

    {

        public :

                char firstName[ 128 ] ;

                char lastName [ 128 ] ;

                int creditCard ;

    } ;

    /* Прототипы функций: */

    bool getData( NameDataSet& nds ) ;

    void displayData( NameDataSet& nds ) ;

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

    {

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

        setlocale ( LC_ALL , ".1251" ) ;

        /* Выделяем память для 25 экземпляров */

        const int MAX = 25 ;

        NameDataSet nds[ MAX ] ;

        /* Загружаем имя, фамилию и номер социального страхования */

        cout << "Считываем информацию о пользователе\n"

                << "Введите 'exit' для выхода из программы"

                << endl ;

        int index = 0 ;

        while ( getData( nds[ index ] ) && index < MAX)

        {

                index++ ;

        }

        /* Выводим считанные имя и номер */

        cout << "\nЗаписи:" << endl ;

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

        {

                displayData( nds[ i ] ) ;

        }

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

        system( "PAUSE" ) ; return 0 ;

    }

    /* getData — заполнение объекта информацией */

    bool getData( NameDataSet&nds )

_________________

151 стр. Глава 12. Классы в С++

    {

        cout << "\nВведите имя:" ;

        cin >> nds.firstName ;

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных