Ответ
Конструктор — это специальная функция-член класса в C++, которая автоматически вызывается при создании объекта (экземпляра класса). Его основная задача — инициализировать состояние объекта.
Ключевые особенности:
- Имя конструктора совпадает с именем класса.
- Не имеет возвращаемого типа (даже
void). - Может быть перегружен (несколько конструкторов с разными параметрами).
- Если программист не объявляет ни одного конструктора, компилятор генерирует конструктор по умолчанию.
Примеры конструкторов:
class Widget {
private:
int id;
std::string name;
public:
// 1. Конструктор по умолчанию
Widget() : id(0), name("Default") {}
// 2. Параметризованный конструктор (использует список инициализации)
Widget(int i, const std::string& n) : id(i), name(n) {}
// 3. Конструктор копирования
Widget(const Widget& other) : id(other.id), name(other.name) {
std::cout << "Copy constructor calledn";
}
};
// Использование:
Widget w1; // Вызов конструктора по умолчанию
Widget w2(42, "Answer"); // Вызов параметризованного конструктора
Widget w3 = w2; // Вызов конструктора копирования
Важно: Конструкторы, принимающие один аргумент, могут участвовать в неявных преобразованиях типов. Чтобы запретить это, используйте ключевое слово explicit.