C++ Konstrukteurs
Konstrukteurs
'n Konstruktor in C++ is 'n spesiale metode wat outomaties genoem word wanneer 'n objek van 'n klas geskep word.
Om 'n konstruktor te skep, gebruik dieselfde naam as die klas, gevolg deur hakies ()
:
Voorbeeld
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;
}
Let wel: Die konstruktor het dieselfde naam as die klas, dit is altyd public
, en dit het geen terugkeerwaarde nie.
Konstruktor parameters
Konstrukteurs kan ook parameters neem (net soos gewone funksies), wat nuttig kan wees om aanvanklike waardes vir eienskappe op te stel.
Die volgende klas het brand
, model
en year
kenmerke, en 'n konstruktor met verskillende parameters. Binne die konstruktor stel ons die eienskappe gelyk aan die konstruktor parameters ( brand=x
, ens). Wanneer ons die konstruktor noem (deur 'n objek van die klas te skep), gee ons parameters aan die konstruktor, wat die waarde van die ooreenstemmende eienskappe op dieselfde sal stel:
Voorbeeld
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;
}
Net soos funksies, kan konstruktors ook buite die klas gedefinieer word. Verklaar eers die konstruktor binne die klas, en definieer dit dan buite die klas deur die naam van die klas te spesifiseer, gevolg deur die omvangresolusie ::
-operateur, gevolg deur die naam van die konstruktor (wat dieselfde is as die klas):
Voorbeeld
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;
}