ID: 2990 OOP - Zaawansowane Średnie

Źródło: Arkusze CKE

Definicja konstruktora dla zaprezentowanej klasy w języku C++ może być sformułowana jak poniżej:
class Owoc
{
public:
double waga;
string nazwa;
Owoc(double waga, string nazwa);
};
Deklaracja 1:
Owoc::Owoc(double waga, string nazwa) {
this -> waga = waga;
this -> nazwa = nazwa;
}
Deklaracja 2:
Construct::Owoc(double waga, string nazwa) {
this -> waga = waga;
this -> nazwa = nazwa;
}
Deklaracja 3:
Construct::Owoc(double waga, string nazwa) {
this.waga = waga;
this.nazwa = nazwa;
}
Deklaracja 4:
Owoc::Owoc(double waga, string nazwa) {
this.waga = waga;
this.nazwa = nazwa;
}

Warianty odpowiedzi

  1. A

    Deklaracji 2

  2. B

    Deklaracji 4

  3. C

    Deklaracji 1

  4. D

    Deklaracji 3

Wyjaśnienie

Definiując konstruktor poza ciałem klasy w C++, używamy operatora zasięgu :: poprzedzonego nazwą klasy, czyli zapisujemy Owoc::Owoc.

Dodatkowo wskaźnik this w C++ wskazuje na bieżący obiekt poprzez wskaźnik, dlatego do jego pól odwołujemy się za pomocą operatora strzałki ->, a nie kropki.

Zestawienie tych dwóch zasad jednoznacznie wskazuje na poprawność Deklaracji 1.

Sprawdź się w praktyce

Rozwiąż pełny test próbny INF.04 albo wylosuj pojedyncze pytanie na szybką powtórkę.

Podobne pytania — OOP - Zaawansowane