нту всередині самого цього класу:
class Vector {Vec [5]; V;// Помилка: (Vector);// Помилка
// Інші методи
};
У даному випадку визначення об'єкта V як об'єкта цього ж класу Vector мало призвести до нескінченного рекурсивного виділенню пам'яті, проте транслятор з мови С + + просто видасть відповідне повідомлення про синтаксичну помилку. C + + дозволяє вказувати значення за замовчуванням для параметрів функції. Якщо користувач не вказує-яких параметрів, функція буде використовувати значення за замовчуванням. Конструктор не є винятком; ваша програма може вказати для нього значення за замовчуванням так само, як і для будь-якої іншої функції. Наприклад, наступний конструктор employee використовує за замовчуванням значення окладу рівним 10000.0, якщо програма не вказує оклад при створенні об'єкта. Однак програма повинна вказати ім'я службовця та його номер. Конструктори, які не мають параметрів, називаються конструкторами за замовчуванням:
# include "iostream.h"// для cin, cout см.следующіе глави
class X {: * PointX;
X () {cout <<"Оголошено об'єкт класу X!";
PointX = (char * 0);
};// X () - конструктор за замовчуванням
}; NewX; main ()
{<<"Кінець роботи.";
}
Результатом роботи цієї програми буде:
Оголошено об'єкт класу Х!
Кінець роботи.
Як і інші методи класу конструктори можуть бути перевантажується, тобто можуть використовувати кілька визначень з різними списками параметрів:
Intg {Number [5] ;//Число можна зберігати сімвольноN ;//І цілим типом: (char * Str) {//Конструктор для 1-го випадку (strlen (Str)> 5 ) <<"Перевищення розміру числа"; strcpy (Number, Str);
}; (int L) {N = L};// Конструктор для другого випадку
}; main ()
{First ("125");// Виклик першого конструктораSecond (125);// Виклик другого конструктора
// Інші оператори програми
}
. Операція посилання
Операція посилання "&" в базовому мові С використовувалася для взяття адреси об'єкта (змінних, масивів, структур, функцій тощо). У С + + розширені можливості операції посилання. При цьому з'явилася нова концепція посилання в операторах оголошення. Розглянемо приклад. p align="justify"> Handle; * New = &Handle; & Next = Handle;
У цьому прикладі змінна Next не є покажчиком на тип int, а носить назву посилання на об'єкт типу int. Ця змінна повинна бути проініціалізувати при її оголошенні. Далі в ...