Probeklausur C++ Crash Course
1) Klassen
Eine Farbe sei mit ihren 3 Komponenten R, G, und B gegeben. Implementieren Sie eine Klasse “Color” (header-only), mit welcher man die komponentenweise Addition zweier Farben in C++ wie folgt schreiben kann:
Color x(1,0,0), y(0,1,1); Color z = x.plus(y); std::cout << x+y << std:endl;
2) Fachbegriffe
Nennen Sie den Fachbegriff für den entsprechenden dazugehörigen C++-Gegenpart.
Beispiel: .h Header → .cpp Modul
- Bauplan: ____________________________________________
- Argumentwert: ____________________________________________
- Prototyp: ____________________________________________
- Call-by-Value: ____________________________________________
- Lokale Variable: ____________________________________________
3) Fehlersuche
Was fehlt oder ist falsch in der folgenden header-only .h Datei?
- class A
- {
- A();
- int *X;
- do(B y);
- }
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
4) Programmablauf
Gegeben sei folgendes C++ Programm:
- class C1
- {
- public: C1(int x = 1) : v(x) {}
- int x() {return(y()-1);}
- int y() {return(2*z());}
- virtual int z() {return(3*v);}
- protected: int v;
- };
- class C2: public C1
- {
- public: C2(int x = 2) : C1(x) {}
- int y() {return(3*z());}
- };
- class C3: public C2
- {
- public: C3(int x = 3) : C2(x) {}
- int z() {return(12*v);}
- };
- void main()
- {
- {
- C2 a(10);
- std::cout << a.x() << std::endl;
- }
- {
- C2 *b = new C3();
- std::cout << b->x() << std::endl;
- }
- }
Welche Zahlen gibt das Programm aus?
- Zeile 28:
- Zeile 32:
In welchen Zeilen wird der Konstruktor bzw. Destruktor der Klasse C2
bzw. C3
aufgerufen:
- Konstruktor C2:
- Destruktor C2:
- Konstruktor C3:
- Destruktor C3:
5) Lückentext
Füllen Sie die Lücken in folgendem Code mit sinnvollen Anweisungen:
- class RedColor: ...
- {
- ...
- RedColor() ...
- };