Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример класса

Сортировка методом прямого выбора | Лаборатоная работа № 6 | Лабораторная работа № 7 | Функции обработки строк типа AnsiString | Лаборатоная работа № 8 | Теоретические сведения | Сведения о гражданине ind1 | Лабораторная работа № 9 | Лабораторная работа № 10 | Лабораторная работа № 11 |


Читайте также:
  1. II. Часть примерного теста на экзамен.
  2. Lt;TITLE> Пример работы
  3. VI. Требования к организации здорового питания и формированию примерного меню
  4. XVII век – век перехода от средневековой литературы к литературе Нового времени (на любых конкретных литературных примерах).
  5. А» класса Карпец Анна.
  6. В которой мы ненадолго оставляем наших героев и переносимся из Чехии в Силезию, чтобы посмотреть, что примерно в это же время поделывают некоторые старые — и новые — знакомые. 1 страница
  7. В которой мы ненадолго оставляем наших героев и переносимся из Чехии в Силезию, чтобы посмотреть, что примерно в это же время поделывают некоторые старые — и новые — знакомые. 10 страница

Ниже приведен пример описания класса Банковского счета:

01: class Account // БанковскийСчет

02: {

03: public:

04: Account(int number): // конструктор

05: accountNumber(number), amount(0)

06: {}

07: ~Account() {} // деструктор

08: void deposit(float sum); // положить на счет

09: void withdraw(float sum); // снять со счета

10: float balance() { // проверить баланс

11: return amount;

12: }

13: protected:

14: float amount; // сумма на счете

15: private:

16: long accountNumber; // номер счета

17: };

18: void Account::deposit(float sum) {

19: amount += sum;

20: }

21: void Account::withdraw(float sum) {

22: amount -= sum;

23: }

24: void main() {

25: Account a(12345L);

26: a.deposit(1000);

27: a.withdraw(300);

28: cout << a.balance();

29: }

Имя класса задается в строке 1, в открытой области видимости задаются конструктор и деструктор класса. Эти методы вызываются при создании и уничтожении экземпляров класса.

Конструктор определяет, каким образом новый объект типа класса будет создан, как будет проводиться выделение памяти и инициализация объекта. Его определение может включать инструкции для выделения памяти, присваивания значений элементам, преобразование типов, и все что угодно, необходимое для данного класса. Конструктор имеет то же имя, что и класс (строка 4). При вызове конструктора при помощи операции ':' после заголовка функции, и перед телом функции можно вызвать конструктор базового класса (родителя) или инициализировать собственные переменные (строка 5). В данном примере тело конструктора (строка 6) не содержит никаких операторов или вызовов функций.

Деструкторы уничтожают объекты класса, созданные перед этим конструктором, очищая значения и освобождая память. Деструкторы наследуют имена своих классов, с добавлением лидирующего знака тильда '~' (строка 7).

В строках 8 и 9 объявлены два метода класса не возвращающих значение (void) и принимающих один параметр. В строках 10-12 объявляется функция balance и, также, и определяется, так как там же задано и тело функции (внутреннее или inline определение).

Далее в строках 13-16 задаются два атрибута, один из которых является приватным. В строках 18-20 задается тело функции для метода deposit (аналогично в строках 21-23 – для withdraw). Обратите внимание на использование операции селектор области действия '::' между определяемым классом и функцией элементом. Имя класса Account используется для указания компилятору, к какому классу принадлежит withdraw (так как могут иметься и другие варианты withdraw, принадлежащие другим классам).

Далее в функции main создается переменная a типа Account с параметром, который передается функции-конструктору (строка 25) и вызываются методы класса deposit и withdraw (для вызова метода используется точка '.') – строки 26 и 27. В строке 28 баланс счета выводится на экран с использованием потока вывода cout (для работы с потоками необходимо подключить заголовочный файл iostream.h).


Дата добавления: 2015-11-04; просмотров: 33 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Сущности и Объекты| Создание объектов. Конструкторы и деструктор

mybiblioteka.su - 2015-2024 год. (0.011 сек.)