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, modelen yearkenmerke, 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;
}