Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Системне програмне забезпечення.doc
Скачиваний:
8
Добавлен:
27.10.2018
Размер:
614.4 Кб
Скачать

Конструкторы

Итак, конструкторы используются для создания объекта. Благодаря конструкторам разрабатываемые новые типы данных становятся такой неотъемлимой частью языка, как и встроенные типы. Конструктор определяет, каким образом новый объект типа класса будет создан, как будет проводиться выделение памяти и инициализация объекта. Его определение может включать инструкции для выделения памяти, присваивания значений элементам, преобразование типов, и все что угодно, необходимое для данного класса. При этом конструкторы наследуют имя своего класса: class sber_bank { < Объявление класса private: double big_bucks; public: sber_bank(double bucks); < Конструктор void deposit(double bucks); double withdraw(double bucks); }; Разберем порядок описания конструктора: Селектор Используемый класс Имя конструктора v v v sber_bank :: sber_bank(double bucks) { big_bucks = bucks; < Инициализация данных } Конструктор можно сделать встроенным: class sber_bank { private: double big_bucks; public: // Встроенный конструктор sber_bank(double bucks) { big_bucks = bucks; } void deposit(double bucks); double withdraw(double bucks); };

Деструкторы

Деструкторы, как следует из их названия, уничтожают объекты класса, созданные перед этим конструктором, очищая значения и освобождая память. Деструкторы наследуют имена своих классов, с добавлением лидирующего знака тильда '~': class sber_bank { private: double big_bucks; public: sber_bank(double bucks); < Конструктор ~sber_bank(void); < Деструктор void deposit(double bucks); double withdraw(double bucks); }; В объявленном выше классе деструктор определяется так: Селектор Используемый класс Имя деструктора v v v sber_bank :: ~sber_bank(void) { printf("Машина останавливается \n"); } Деструктор также можно объявлять встроенным: class sber_bank { private: double big_bucks; public: // Встроенный конструктор sber_bank(double bucks) { big_bucks = bucks; } // Встроенный деструктор ~sber_bank(void) {printf("Машина останавливается ...\n");} void deposit(double bucks); double withdraw(double bucks); };

  1. C++. Перевантаження операторів.

Перегрузка операторов заключаеться в изменении смысла действия операторов при работе из с определенными классами. При перегрузке операторов в прототипе И в заголовке вункции (метода) класса используеться ключевое слово operator после которого ставиться символ перегружаемого оператора.

  1. C++. Статичні елементи класу.

Статические элементы класса

Можно объявить элемент класса (данные или функцию) как статический.

Статические элементы данных

Статический элемент данных является по существу глобальной переменной с областью действия в классе и разделяется всеми представителями класса. Он только один, вне зависимости от того, сколько представителей имеет класс. На самом деле статический элемент данных существует даже в том случае, когда никаких представителей класса не создано.

Помимо объявления в определении класса, статический элемент данных должен еще и определяться:

class SomeClass

{

static int iCount;

// Объявление статического

// элемента.

//.. .

};

int SomeClass::iCount = 0;

// Определение статического

// элемента.

Обращаться к открытым статическим элементам класса можно либо через любой его представитель операциями “.” и “->”, либо с помощью операции разрешения области действия (SomeClass : : iCount). Последний способ предпочтительнее, так как ясно показывает, что элемент не связан с конкретным объектом.

Следуя пионерской традиции нисходящего визуального стиля программирования Delphi на Объектном Паскале, корпорация Borland выпускает на рынок систем быстрой разработки приложений RAD (Rapid Application Development) мощную систему под названием C++ Builder на языке C++. BIOS видеоадаптеровАдресное пространство памяти ПК Препроцессор и особенности компилятора Отладка программ

  1. C++. Інкапсуляція даних.