Weryfikacja udzielonych odpowiedzi (C++ obiektowe)

0

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.

  1. 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.

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. Argumenty domyślne (domniemane) metody przyjmują wartość:
    A) Losową
    B) Przesłaną przez referencję
    C) Podaną w deklaracji funkcji
    D) Zero lub NULL

  14. 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

  15. 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 &);
}
  1. 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;}
}
  1. 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;
}
0

To nie jest czasem test wielokrotnego wyboru?

  1. C
  2. A, C
  3. B, C
  4. A
  5. B, D

17)Wywal tego if'a, bo szansa na to, że bez inicjalizacji te składowe będą NULL'ami jest praktycznie zerowe oraz *this->x = *source.x

0

no błędem jest np 2 pytanie bo nie ma poprawnej jednej odpowiedzi () this jako wskaźnik MUSI zajmować miejsce w pamięci
3. Struktura także posiada konstruktor
4 są poprawne dwie odpowiedzi
w 8 jak dla mnie trzeba doprecyzować poprawną odpowiedź
14 są dwie poprawne odpowiedzi

0

Ogólnie struktura od klasy różni się tylko domyślnym modyfikatorem dostępu. W sumie istnieje tylko ze względu na kompatybilność z C.

0

Test jednokrotnego wyboru, Profesor w poleceniu napisał: Wybierz NAJLEPSZĄ odpowiedź :p

0

Podczas gdy np.w pytaniu czternastym:

  1.    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 inicjalizowaną zerami

Odpowiedzi B oraz D są poprawne i równie dobre... coś dziwne masz to zadanie.

0

Dziękuję wszystkim za pomoc, błędów nie było tak dużo :)

0

11. 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

Tak naprawde to tylko C :(

1 użytkowników online, w tym zalogowanych: 0, gości: 1