stecke gerade mitten in der Klausurvorbereitung und habe ein kleines Problem, dass für die cracks von euch sicher trivial sein wird
Habe hier mal eine Ausschnitt einer Klausur vom letzten Semester:
PHP-Quellcode
- Das folgende Quellfile wird gemäß C++-Sprachstandard compiliert und enthält 9 Fehler.
- Markieren Sie die fehlerhaften Stellen möglichst zeichengenau und schreiben Sie rechts danaben
- eine kurze stichwortartige Begründung!
- Logische oder Laufzeit-Fehler (z.B fehlende Variablen-Initialisierungen, nicht freigegebener
- Speicher) sind nicht gefragt.
- #include <string>
- #using namespace std;
- class A{
- int s;
- public:
- virtual int x;
- A(string s) {s = string(“abc”) +4;}
- };
- class B :: public A{
- int i;
- public:
- A f(){
- i=0;
- return this;
- }
- B(string s){}
- };
- void g(){
- B n[3];
- B* b = new A(“abc”);
- A m = n[0];
- m.f();
- }
Und hier meine Lösungsvorschläge :eek:
PHP-Quellcode
- #include <string>
- #using namespace std; //# falsch, da using namespace kein Präprozessorbefehl
- class A{
- int s;
- public:
- virtual int x;
- A(string s) {s = string(“abc”) +4;} //s kann nicht mit string initialisiert werden, da vom typ integer
- };
- class B :: public A{ //falscher Operator, muss : sein
- int i;
- public:
- A f(){
- i=0;
- return this;
- }
- B(string s){} //s passt nicht, weiß aber nicht warum :duck and cover:
- };
- void g(){
- B n[3];
- B* b = new A(“abc”); //b kann nicht während dem initialisieren erzeugt werden //("abc") geht nicht, warum??
- A m = n[0]; //Objekt m existiert nicht
- m.f(); //da kein Objekt m existiert kann die elementfunktion f auch nicht aufgerufen werden
- }
Vllt. wäre jemand so freundlich und schaut sich das mal an und verbessert/berichtigt meine gefundenen Fehler
Danke
MfG kunks
[size="2"]Gegen die Vorratsdatenspeicherung - Mach mit![/size]