У цьому посібнику ми дізнаємося про конструктор C ++ та його тип на прикладах довідки.
Конструктор - це особливий тип функції-члена, яка викликається автоматично при створенні об'єкта.
У C ++ конструктор має те саме ім'я, що і у класу, і він не має типу повернення. Наприклад,
class Wall ( public: // create a constructor Wall() ( // code ) );
Тут функція Wall()
є конструктором класу Wall
. Зверніть увагу, що конструктор
- має те саме ім'я, що і клас,
- не має типу повернення, і
- є
public
Конструктор за замовчуванням C ++
Конструктор без параметрів відомий як конструктор за замовчуванням . У наведеному вище прикладі Wall()
є конструктором за замовчуванням.
Приклад 1: Конструктор за замовчуванням C ++
// C++ program to demonstrate the use of default constructor #include using namespace std; // declare a class class Wall ( private: double length; public: // create a constructor Wall() ( // initialize private variables length = 5.5; cout << "Creating a wall." << endl; cout << "Length = " << length << endl; ) ); int main() ( // create an object Wall wall1; return 0; )
Вихід:
Створення довжини стіни = 5,5
Тут, коли створюється об’єкт wall1, викликається Wall()
конструктор. Це встановлює змінну довжини об'єкта 5.5
.
Примітка: Якщо ми не визначили конструктор у нашому класі, то компілятор C ++ автоматично створить конструктор за замовчуванням з порожнім кодом і без параметрів.
С ++ Параметризований конструктор
У C ++ конструктор з параметрами відомий як параметризований конструктор. Це найкращий спосіб ініціалізації даних членів.
Приклад 2: Параметризований конструктор C ++
// C++ program to calculate the area of a wall #include using namespace std; // declare a class class Wall ( private: double length; double height; public: // create parameterized constructor Wall(double len, double hgt) ( // initialize private variables length = len; height = hgt; ) double calculateArea() ( return length * height; ) ); int main() ( // create object and initialize data members Wall wall1(10.5, 8.6); Wall wall2(8.5, 6.3); cout << "Area of Wall 1: " << wall1.calculateArea() << endl; cout << "Area of Wall 2: " << wall2.calculateArea() << endl; return 0; )
Вихід:
Площа стіни 1: 90,3 Площа стіни 2: 53,55
Тут ми створили параметризований конструктор, Wall()
який має 2 параметри: double len
і double hgt
. Значення, що містяться у цих параметрах, використовуються для ініціалізації змінних довжини та висоти.
Коли ми створюємо об'єкт Room
класу, ми передаємо значення змінних-членів як аргументи. Код для цього:
Wall wall1(10.5, 8.6); Wall wall2(8.5, 6.3);
Завдяки таким чином ініціалізованим змінним-членам ми тепер можемо обчислити площу стіни за допомогою calculateArea()
функції.
Конструктор копіювання C ++
Конструктор копіювання в C ++ використовується для копіювання даних одного об'єкта в інший.
Приклад 3: Конструктор копіювання C ++
#include using namespace std; // declare a class class Wall ( private: double length; double height; public: // parameterized constructor Wall(double len, double hgt) ( // initialize private variables length = len; height = hgt; ) // copy constructor with a Wall object as parameter Wall(Wall &obj) ( // initialize private variables length = obj.length; height = obj.height; ) double calculateArea() ( return length * height; ) ); int main() ( // create an object of Wall class Wall wall1(10.5, 8.6); // print area of wall1 cout << "Area of Room 1: " << wall1.calculateArea() << endl; // copy contents of room1 to another object room2 Wall wall2 = wall1; // print area of wall2 cout << "Area of Room 2: " << wall2.calculateArea() << endl; return 0; )
Вихідні дані
Площа кімнати 1: 90.3 Площа кімнати 2: 90.3
У цій програмі ми використовували конструктор копіювання для копіювання вмісту одного об’єкта Wall
класу в інший. Код конструктора копії:
Room(Room &obj) ( length = obj.length; height = obj.height; )
Зверніть увагу, що параметр цього конструктора має адресу об'єкта Wall
класу.
Потім ми присвоюємо значення змінних першого об’єкта відповідним змінним другого об’єкта. Так копіюється вміст об’єкта.
В main()
, потім ми створюємо два об'єкти wall1 і wall2 , а потім скопіювати вміст першого об'єкта до другого з кодом
Wall wall2 = wall1;
Примітка : Конструктор в основному використовується для ініціалізації об’єктів. Вони також використовуються для запуску коду за замовчуванням, коли створюється об'єкт.