printКлассы

printКонструктор по умолчанию

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

Синтаксис:
имя класса();
имя класса(тип параметра1 =значение по умолчанию, тип параметра2 =значение по умолчанию, …);

Задача: Такая же, как у любого конструктора – инициализировать все поля.

Назначение: Без этого конструктора невозможно создать массив объектов.

Замечания:
  • Если в классе не определен ни один конструктор, компилятор создает сам конструктор по умолчанию. В этом автоматически созданном конструкторе вызываются конструкторы по умолчанию для всех базовых классов и полей.
  • Если у какого-то поля или базового класса нет конструктора по умолчанию, компилятор при попытке самостоятельно создать конструктор по умолчанию выдаст сообщение об ошибке.

Примеры:
class String {
  int len;
  char * str;
public:
  String(const char *s=""); // конструктор по умолчанию
  ...
};
String::String(const char *s):len(strlen(s)),str(new char[len+1])
{
  strcpy(str,s);
}
int main()
{
  String a; // создание строки, используя конструктор по умолчанию
  String b[100]; // создание массива строк
  String c(); // это не определение объекта, а объявление функции без параметров!!!
}
loading