C++ ООП. Конструктори


Конструктор

Конструктор в C++ це спеціальний метод , який автоматично викликається, коли створюється об'єкт класу.

Щоб створити конструктор, використовуйте ім'я класу, а потім дужки () :

#include <iostream>
using namespace std;

class MyClass {                // оголошений клас з імям MyClass 

  public:                      // Специфікатор доступу

    MyClass() {                // Конструктор // з імям MyClass() 
      cout << "Hello World!";
    }

};

int main() {

  MyClass myObj;    // Створіть об’єкт MyClass (це викличе конструктор)

  return 0;
}

// RESULT:
// Hello World!

Примітка: Конструктор має таке ж ім'я, що і клас, він є завжди public , і не має ніякого значення, що повертається.


параметри конструктора

Конструктори також можуть приймати параметри (так само, як звичайні функції), які можуть бути корисні для установки початкових значень для атрибутів.

Наступний клас має brand , model і year атрибути, і конструктор з різними параметрами. Усередині конструктора ми встановлюємо атрибути рівні параметри конструктора ( brand = x і т.д.). Коли ми називаємо конструктор (шляхом створення об'єкта класу), ми передаємо параметри в конструктор, який встановить значення відповідних атрибутів ті ж змінні:

#include <iostream>
using namespace std;

class Car {        // Клас

  public:          // Специфікатор доступу

    string brand;  // Атрибут
    string model;  // Атрибут
    int year;      // Атрибут

    Car(string x, string y, int z) {  // Конструктор з параметрами (x, y, z)
      brand = x;
      model = y;
      year = z;
    }

};

int main() {

  // Створіть об'єкти Car та викличте конструктори з різними значеннями
  Car carObj1("BMW", "X5", 1999);            // carObj1
  Car carObj2("Ford", "Mustang", 1969);      // carObj2

  // Виводимо значення
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";  // BMW X5 1999
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";  // Ford Mustang 1969 

  return 0;
}


// RESULT:
// BMW X5 1999
// Ford Mustang 1969 

Так само , як і функції, конструктори також можуть бути визначені поза класом. По-перше, оголосіть конструктор всередині класу, а потім визначіть його поза класом, вказавши ім'я класу, за яким слідує дозвіл області видимості :: оператора, за яким слідує ім'я конструктора (яке є таким же, як клас):

#include <iostream>
using namespace std;

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";   // BMW X5 1999
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";   // Ford Mustang 1969

  return 0;
}

// RESULT:
// BMW X5 1999
// Ford Mustang 1969 

Наш партнер:
beta test mp3 playlist downloader