C++ Конструктори
Конструктори
Конструктор у C++ — це спеціальний метод, який автоматично викликається під час створення об’єкта класу.
Щоб створити конструктор, використовуйте те саме ім’я, що й у класу, а потім у дужках ()
:
Приклад
class MyClass { // Клас
public: // Специфікатор доступу
MyClass() { // Конструктор
cout << "Hello World!";
}
};
int main() {
MyClass myObj; // Створити об’єкт MyClass (це викличе конструктор)
return 0;
}
Спробуйте самі »
Примітка: Конструктор має те саме ім’я, що й клас, він завжди public
і не має жодного значення, що повертається.
Параметри конструктора
Конструктори також можуть приймати параметри (як і звичайні функції), що може бути корисним для встановлення початкових значень для атрибутів.
Цей клас має атрибути brand
, model
і year
та конструктор з різними параметрами. Всередині конструктора ми встановлюємо атрибути, що дорівнюють параметрам конструктора (brand=x
тощо). Коли ми викликаємо конструктор (шляхом створення об’єкта класу), ми передаємо конструктору параметри, які встановлять значення відповідних атрибутів такими ж:
Приклад
class Car { // Клас
public: // Специфікатор доступу
string brand; // Атрибут
string model; // Атрибут
int year; // Атрибут
Car(string x, string y, int z) { // Конструктор з параметрами
brand = x;
model = y;
year = z;
}
};
int main() {
// Створити об’єкти Car і викликати конструктор з різними значеннями
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Вивести значення
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
Спробуйте самі »
Як і функції, конструктори також можуть бути визначені поза класом. Спочатку оголосите конструктор усередині класу, а потім визначте його поза класом, вказавши ім’я класу, а потім оператор дозволу області видимості ::
, а потім ім’я конструктора (те саме, що і клас):
Приклад
class Car { // Клас
public: // Специфікатор доступу
string brand; // Атрибут
string model; // Атрибут
int year; // Атрибут
Car(string x, string y, int z); // Оголошення конструктора
};
// Визначення конструктора поза класом
Car::Car(string x, string y, int z) {
brand = x;
model = y;
year = z;
}
int main() {
// Створити об’єкти Car і викликати конструктор з різними значеннями
Car carObj1("BMW", "X5", 1999);
Car carObj2("Ford", "Mustang", 1969);
// Вивести значення
cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
return 0;
}
Спробуйте самі »