рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Конструктори - раздел Программирование, Процедурно-орієнтоване (структурне) програмування Конструктори Ініціалізують Об’Єкт Класу З Необов’Язковим Списком Аргументів. ...

Конструктори ініціалізують об’єкт класу з необов’язковим списком аргументів. Аргументи, якщо вони використовуються, можуть мати значення за замовчуванням.

Конструктори автоматично викликаються компілятором при оголошенні змінної даного класу, за необхідності перетворень у виразах, аргументах функцій або в значеннях, що повертаються, а також при створенні динамічної змінної за допомогою операції new.

Усі невіртуальні конструктори базових класів, якщо такі є, викликаються до виклику конструктора похідного класу. Конструктори мають те ж ім’я, що й клас, для якого вони визначені. Конструктор може бути оголошений і в закритій, і в захищеній, і у відкритій частині класу. Конструктор може бути визначений усередині або поза оголошенням класу (як і функція-член).

 

class IntStack

{

int *v, size, top;

public:

IntStack(int ezis); // оголошення

// ...

};

 

IntStack::IntStack(int ezis)

{

v = new int[size = ezis];

top = -1;

}

 

// оголошення IntStack. Викликається конструктор

IntStack huge(1000);

 

Конструктор не може бути оголошений ні const, ні volatile, ні static, ні virtual. Не має значення, що повертається.

Конструктори можуть бути викликані трьома еквівалентними способами:

 

IntStack good(100);

IntStack bad = IntStack(100); // явний

IntStack ugly = 100; // скорочений

 

Конструктори використовуються для ініціалізації константних полів і полів, які є змінними класу. Константне поле повинне бути ініціалізоване в кожному визначенні конструктора. Ім’я поля, обмежене дужками, відокремлюється від списку аргументів конструктора двокрапкою.

 

class IntStack

{

const int size;

// ...

};

 

IntStack:: IntStack(int ezis) : size(ezis)

{

v = new int [size];

top = -1;

}

 

Конструктори можуть бути перевантажені.

Конструктори можуть ініціалізувати масиви об’єктів класу в такий же спосіб, як і масиви вбудованих типів. Максимальна кількість елементів може бути опущена, якщо вона дорівнює кількості ініціалізуючих значень. Якщо максимальна кількість елементів більша за кількість значень, то елементи, що залишилися, ініціалізуються за допомогою конструктора за замовчуванням. Якщо задані всі значення для даного розміру масиву, то фігурні дужки при вказівці списку значень можуть бути опущені.

 

Phone office[] =

{

708, 555, 8887,

708, 555, 7255

};

 

Phone office[3] =

{

708, 555, 6012, // потрібен конструктор за замовчуванням,

708, 555, 3703 // якого Phone не має

};

1.1. Конструктори і перетворення типів

Конструктори виконують визначені користувачем перетворення типів, якщо мають один аргумент (або якщо мають тільки один аргумент, або якщо інші аргументи мають значення за замовчуванням). Такі перетворення є доповненням до арифметичних перетворень у виразах при ініціалізації, передачі аргументів функціям і поверненні функціями результату.

Як правило, виконується одне перетворення чи за допомогою конструктора, чи за допомогою операції перетворення.

 

class String { /* ... */ String (const char*); };

class BitString { /* ... */ BitString (String); };

void f (const String& s) { /* ... */ }

void g (const BitString& b) { /* ... */ }

f (“Hello”); // Перетворення String(“Hello”);

g (“10110”); // помилка: не відбувається перетворення BitString(String(“10110”))

 

– Конец работы –

Эта тема принадлежит разделу:

Процедурно-орієнтоване (структурне) програмування

На сайте allrefs.net читайте: "Процедурно-орієнтоване (структурне) програмування"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Конструктори

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Структура програми
  // Welcome.cpp #include <stdio.h> main() { printf("Hello, world"); return 0; } Перший рядок наведеної

Типи даних
  Type Size char, unsigned char, signed char 1 byte short, unsigned short 2 bytes

Константи
4.1. Цілі знакові константи Десяткові 23, -42, +1991 Мають тип int, якщо значення константи не перевищує максимально припустимого значен

Перерахування
Перерахування дозволяють використати імена замість числових значень. Перерахування можуть задавати ім’я типу. Перерахування можуть бути ініціалізовані певними (цілими) значеннями. Також може бути в

Цикл do - while
do оператор while(вираз);   Цикл do - while являє собою скорочений запис для   label: оператор; if(вираз) goto label;  

Оголошення
Оголошення визначає ім’я функції, тип значення, що повертається, і типи аргументів.   // Два аргументи типу double і повертає значення типу double. double Hypotenuse

Визначення
Визначення функції описує код, виконуваний під час виклику функції. Визначення функції може бути оголошено inline для оптимізації дуже маленьких функцій. Це оголошення не гарантує, що функція, огол

Покажчики
Покажчики – це змінні, які містять адресу іншої змінної або функції. Покажчики оголошуються за допомогою символу *.   int i, *pi = &i; // покажчик на int int *pp

Посилання
Посилання – це друге ім’я для іншої змінної. Посилання оголошуються за допомогою символу &. При оголошенні посилання повинні бути ініціалізовані (посилання може бути ініціалізоване лише один ра

Вектори
Вектори – це безперервні блоки пам’яті, що зберігають множину елементів того самого типу. Вони оголошуються за допомогою зазначення кількості елементів, що повинно бути позитивним цілим константним

Структури
Структури – це набір зв’язаної інформації, можливо, різних типів, об’єднаний в один об’єкт. Структури можуть мати ім’я, що у цьому випадку буде ім’ям типу.   struct Call

Конструктори за замовчуванням
Конструктори за замовчуванням не мають аргументів (або всі аргументи мають значення за замовчуванням). Конструктор за замовчуванням потрібен, коли створюється масив об’єктів даного класу з використ

Деструктори
Деструктори виконують усі необхідні дії перед знищенням об’єкта. Деструктори автоматично викликаються компілятором: 1) при виході з області видимості; 2) при створенні тимчасових

Покажчики на члени класу
  Покажчики на члени класу вказують на нестатичні поля або методи (включаючи віртуальні) будь-якого об’єкта класу.   struct Point { int x, y;

Оголошення
Оголошення похідного класу вводить новий тип. Оголошення похідного класу встановлює обмеження доступу private, protected або public для членів свого базового класу. За замовчуванням встановлюється

Оголошення доступу
Оголошення доступу дає можливість знову зробити захищеними або відкритими захищені і відкриті члени закритого базового класу в похідному класі. Дозволяють зробити знову відкритими відкриті члени за

Стани помилки
Стани помилки підтримуються кожним із потоків. Стани помилки зберігаються як набір бітів: eofbit, failbit і badbit. Множинні стани одержуються за допомогою операції побітового АБО. int eof

Потокове виведення
Потокове виведення досягається при використанні змінних класів ostream або istream. Потокове виведення може застосовуватися з одним із визначених вихідних потоків або з вихідним потоком, що був виз

Потокове введення
Потокове введення досягається при використанні змінної класу istream або iostream. Може застосовуватися з визначеним вхідним потоком cin чи із вхідним потоком, визначеним користувачем.

Файлове виведення
Файлове виведення досягається при зв’язуванні вихідного потоку з файлом за допомогою змінної класу ofstream або fstream. Ці класи визначені у файлі заголовка fstream.h. Файлове виведення може викор

Файлове введення
Файлове введення досягається при зв’язуванні вхідного потоку з файлом за допомогою змінної класу ifstream або fstream. Ці класи визначені у файлі заголовка fstream.h. Файлове введення може використ

Стани форматування
Стани форматування управляють появою чисел при виконанні операції вставки у вихідний потік і форматуванням при виконанні операції зчитування із вхідного потоку. Стани форматування встановлюються за

Установка ширини поля
int width(int minimum); – установлює мінімальну ширину поля для даного розміру й повертає попередню ширину поля. Нуль означає відсутність мінімуму. Коли при вставці в потік або витягу з по

Установка системи числення
ios& dec(ios&); ios& oct(ios&); ios hex(ios&); ios& setbase(int); – змінює систему числення, використовувану для подання цілих чисел при

Шаблони
Шаблони розширюють поняття функції й класу, надаючи можливості їхньої параметризації, тобто оголошення функцій і класів у термінах «будь-якого типу». 2. Шаблони функцій

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги