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 public
ve 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
, model
ve year
niteliklerine 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;
}