Konstruktor w C++

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Konstruktor to specjalna metoda klasy, która uruchamia się automatycznie podczas tworzenia obiektu. Służy najczęściej do nadania wartości początkowych polom obiektu.

Najważniejsze cechy konstruktora

  • ma taką samą nazwę jak klasa,
  • nie ma typu zwracanego, nawet void,
  • może przyjmować parametry,
  • może być przeciążany, czyli klasa może mieć kilka konstruktorów o różnych parametrach,
  • jest wywoływany automatycznie przy tworzeniu obiektu.

Deklaracja konstruktora w klasie

class Owoc
{
public:
    double waga;
    string nazwa;

    Owoc(double waga, string nazwa);
};

Wewnątrz klasy podaje się tylko deklarację konstruktora.

Definicja konstruktora poza klasą

Jeżeli konstruktor jest definiowany poza ciałem klasy, należy użyć operatora zakresu :: oraz nazwy klasy:

Owoc::Owoc(double waga, string nazwa)
{
    this->waga = waga;
    this->nazwa = nazwa;
}

Zapis Owoc::Owoc oznacza: konstruktor Owoc należący do klasy Owoc.

Częsty błąd egzaminacyjny

Niepoprawny jest zapis z inną nazwą klasy, np.:

Construct::Owoc(double waga, string nazwa)

Jeśli klasa nazywa się Owoc, definicja konstruktora poza klasą musi zaczynać się od Owoc::Owoc.

Przykład użycia

Owoc jablko(0.25, "jabłko");

Podczas tworzenia obiektu jablko automatycznie wywoła się konstruktor z dwoma parametrami.