C++ Yapıcılar


yapıcılar

C++'da yapıcı, bir sınıfın nesnesi oluşturulduğunda otomatik olarak çağrılan özel bir yöntemdir .

Bir kurucu oluşturmak için sınıfla aynı adı ve ardından parantezleri kullanın ():

Örnek

class MyClass {     // The class
  public:           // Access specifier
    MyClass() {     // Constructor
      cout << "Hello World!";
    }
};

int main() {
  MyClass myObj;    // Create an object of MyClass (this will call the constructor)
  return 0;
}

Not: Yapıcı, sınıfla aynı ada sahiptir, her zaman 'dır publicve herhangi bir dönüş değeri yoktur.


Yapıcı Parametreleri

Yapıcılar ayrıca, nitelikler için başlangıç ​​değerlerini ayarlamak için yararlı olabilecek parametreleri (tıpkı normal işlevler gibi) alabilirler.

Aşağıdaki sınıf brand, modelve yearniteliklerine ve farklı parametrelere sahip bir kurucuya sahiptir. Yapıcının içinde, nitelikleri yapıcı parametrelerine ( brand=x, vb.) eşit olarak ayarladık. Yapıcıyı çağırdığımızda (sınıfın bir nesnesini oluşturarak), yapıcıya karşılık gelen niteliklerin değerini aynı olacak şekilde ayarlayacak olan parametreleri iletiriz:

Örnek

class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z) { // Constructor with parameters
      brand = x;
      model = y;
      year = z;
    }
};

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}

Tıpkı fonksiyonlar gibi, yapıcılar da sınıfın dışında tanımlanabilir. İlk olarak, yapıcıyı sınıf içinde tanımlayın ve ardından sınıfın adını, ardından kapsam çözümleme :: operatörünü ve ardından yapıcının adını (sınıfla aynı olan) belirterek sınıfın dışında tanımlayın:

Örnek

class Car {        // The class
  public:          // Access specifier
    string brand;  // Attribute
    string model;  // Attribute
    int year;      // Attribute
    Car(string x, string y, int z); // Constructor declaration
};

// Constructor definition outside the class
Car::Car(string x, string y, int z) {
  brand = x;
  model = y;
  year = z;
}

int main() {
  // Create Car objects and call the constructor with different values
  Car carObj1("BMW", "X5", 1999);
  Car carObj2("Ford", "Mustang", 1969);

  // Print values
  cout << carObj1.brand << " " << carObj1.model << " " << carObj1.year << "\n";
  cout << carObj2.brand << " " << carObj2.model << " " << carObj2.year << "\n";
  return 0;
}