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

<p id="chapter31.5.1"><emphasis><strong>Использование шаблона класса из STL...373</strong>  </emphasis></p>

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

    /* BUDGET5.CPP — идентична другим программам */

    /*              Budget за исключением использования */

    /*              шаблона класса из STL */

    #include

    #include

    #include

    #include   

_________________

373 стр. Глава 31. Программа BUDGET 

    using namespace std ;

    /* Account — абстрактный класс, включающий */

    /*            общие свойства различных счетов */

    class Account

    {

      public :

        Account::Account( unsigned accNo )

        {

            /* Инициализация данных-членов */

            accountNumber = accNo ;

            balance = 0 ;

            count++ ;

        }

        /* Функции доступа */

        int accountNo( ) { return accountNumber ; }

        double acntBalance( ) { return balance ; }

        static int noAccounts( ) { return count ; }

        /* Функции транзакций */

        void deposit( double amount ) { balance += amount ; }

        virtual bool withdrawal( double amount )

        {

            if ( balance < amount )

            {

                cout <<"Недостаточно денег: на счету " << balance

                        <<", снимаем "              << amount

                        << endl ;

                return false ;

            }

            balance -= amount ;

            return true ;

        }

        /* Функция вывода на экран */

        void display( )

        {

            cout << type( )

                  << " счёт " << accountNumber

                  << " = " << balance

                  << endl ;

        }

        virtual char* type( ) { return "Account" ; }

      protected :

        static int count ; /* Количество счетов */

        unsigned accountNumber ;

        double balance ;

    } ;

    /* Переменная для сбора статистики */

    int Account::count = 0 ;

    /* Checking — свойства, уникальные для чекового счёта */

    class Checking : public Account

    {

_________________

374 стр. Часть 6. Великолепная десятка

        public :

        Checking::Checking( unsigned accNo ) :

           Account( accNo )

        { }

        /* Перегрузка чисто виртуальных функций */

        virtual bool withdrawal( double amount ) ;

        virtual char* type( ) { return "Чековый" ; }

    } ;

    /* withdrawal — перегрузка Account::withdrawal( ) */

    bool Checking::withdrawal( double amount )

    {

        bool success = Account::withdrawal( amount ) ;

        if ( success && balance < 500.00 )

        {

            balance -= 0.20 ;

        }

        return success ;

    }

    /* Savings — свойства, уникальные для сберегательного счёта */

    class Savings : public Account

    {

      public :

        Savings::Savings( unsigned accNo ) : Account( accNo )

        { noWithdrawals = 0 ; }

        /* Функции транзакций */

        virtual bool withdrawal( double amount ) ;

        virtual char* type( ) { return "Сберегательный" ; }

      protected :

        int noWithdrawals ;

    } ;

    /* withdrawal — перегрузка Account::withdrawal( ) */

    bool Savings::withdrawal( double amount )

    {

        if ( ++noWithdrawals > 1 )

        {

            balance -= 5.00 ;

        }

        return Account::withdrawal( amount ) ;

    }

    /* AccountPtr — мы храним указатели на объекты */

    /*                      Account, а не сами объекты */

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

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

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