Ź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
-
A
Deklaracji 2
-
B
Deklaracji 4
-
C
Deklaracji 1
-
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.