Witam wszystkich, bardzo proszę o pomoc w znalezieniu błędów w teście. Wykładowca stwierdził że są błędy, ale nie powiedział jakie.
-
W C++ domyślnym trybem dostępu do elementów składowych obiektu w definicji klasy za pośrednictwem instrukcji struct jest:
A) Private
B) Protected
C) Public
D) Żadne z powyższych, bo klasy nie można definiować instrukcją struct. -
Operator this :
A) Jest dostępny w każdej niestatycznej metodzie
B) Nie zajmuje pamięci
C) Nie wymaga deklarowania
D) Wszystkie powyższe stwierdzenia są prawdziwe -
Konstruktor to:
A) Funkcja o nazwie różnej od klasy do której należy
B) Funkcja która nazywa się tak samo jak klasa do której należy
C) Funkcja składowa klasy, która nie przyjmuje żadnych parametrów
D) Żadne z powyższych -
Konstruktor domyślny to:
A) Jedyna metoda, którą zawsze musi być zdefiniowany
B) Konstruktor, który działa gdy nie zostanie zdefiniowany żaden inny
C) Konstruktor, który może być wywołany bez żadnych argumentów
D) Konstruktor, który ma pustą listę parametrów formalnych -
Konstruktorem kopiującym:
A) Jest funkcją wykonującą dokładną kopię definiowanego obiektu
B) Służy do kopiowania istniejącej definicji klasy
C) Pozwala kopiować dane statyczne (static) klasy do każdego egzemplarza obiektu typu definiowanego przez tę klasę
D) Pozwala zainicjalizować dane składowe tworzonego obiektu wartościami innego, istniejącego obiektu tej samej klasy -
Charakterystycznym dla konstruktora jest to, że jako wynik działania:
A) Zawsze zwraca wartość typu całkowitego (int)
B) Zwraca wskaźnik do tworzonego obiektu
C) Nie zwraca żadnej wartości
D) Zawsze zwraca wartość typu void -
Przy dziedziczeniu chronionym:
A) Składowe sekcji public klasy bazowej dołączone zostają do sekcji public klasy pochodnej
B) Składowe sekcji public klasy bazowej dołączone zostają do sekcji private klasy pochodnej
C) Składowe sekcji public klasy bazowej dołączone zostają do sekcji protected klasy pochodnej
D) Składowe sekcji public klasy bazowej dołączone zostają do pierwszej klasy pochodnej -
Wszystkie publiczne metody danej klasy:
A) Stanowią jej interfejs
B) Określają tryb dostępu do elementów składowych obiektu danej klasy
C) Mogą być wywoływane bez argumentów
D) Są widoczne w całym programie -
Czy w przypadku klas pochodnych „Przyjaźń” (atrybut friend) jest dziedziczona?
A) Tak
B) Jest dziedziczona w szczególnych przypadkach
C) Nie
D) Nie jest dziedziczona w szczególnych przypadkach -
Klasa polimorficzna to:
A) Taka, w której występuje przynajmniej jedna metoda wirtualna
B) Klasa zawierająca przynajmniej jedną metodę statyczną
C) Klasa, w której zdefiniowano szablony funkcji
D) Klasa, w której są funkcje przeciążone -
Klasa abstrakcyjna:
A) Służy do definiowania wspólnych cech dla wszystkich jej klas potomnych
B) Może zawierać metody virtualne
C) Nie można jej użyć do definiowania obiektów
D) Wszystkie powyższe stwierdzenia są prawdziwe -
Jeżeli w programie jakaś nazwa jest identyfikatorem zmiennej lokalnej pewnej funkcji, to ta sama nazwa nie może być użyta do oznaczenia:
A) Zmiennej lokalnej w innej funkcji
B) Zmiennej globalnej w tym samym programie
C) Parametru formalnego w tej samej funkcji
D) Parametru aktualnego w wywoływaniu tej funkcji -
Argumenty domyślne (domniemane) metody przyjmują wartość:
A) Losową
B) Przesłaną przez referencję
C) Podaną w deklaracji funkcji
D) Zero lub NULL -
Zawartość zmiennych tworzonych w funkcji oznaczonych jako static jest:
A) Zerowana przy każdym odwołaniu do funkcji
B) Zachowana po zakończeniu działania funkcji
C) Zawsze liczbą losową
D) Wstępnie inicjalizowana zera[/b]mi -
Przeładowanie nazwy funkcji to utworzenie:
A) Kilku funkcji o nazwach identycznych lecz różnych zakresach ważności
B) Dodatkowej funkcji main()
C) Kilku funkcji o identycznej nazwie, lecz różnych listach parametrów formalny
D) Funkcja o nazwie identycznej jak jej klasa bazowa
Dana jest definicja klasy wektor definiująca obiekt jakim jest wektor w trójwymiarowej przestrzeni:
class wektor{
float *x, *y, *z;
public:
friend istream & operator>>(istream& x, wektor& z);
wektor();
wektor(float *, float * , float * );
wizytówka (const wektor &);
}
- Dla podanej klasy wizytówka, napisz definicję zadeklarowanego (linia 5) konstruktora domyślnego.
wektor::wektor(){
try{
x= new double;
y= new double;
z= new double;
*x=0;*y=0;*z=0;
}
catch(std::bad_alloc){cout<<"blad alokowania pamieci XP"<<endl;}
}
- Dla podanej klasy wizytówka, napisz definicję zadeklarowanego (linia 7) konstruktora kopiującego.
wektor::wektor(const wektor &source){
if(this.x==NULL && this.y==NULL && this.z==NULL
{
try{
x= new double;
y= new double;
z= new double;
}
catch(std::bad_alloc){cout<<" blad alokowania pamieci XP "<<endl;}
}
this.*x=source.*x;
this.*y=source.*y;
this.*z=source.*z;
}