[Spiel] Findet die Fehler ...
-
implizite initialisierung. das geht, weil der ctor MyClass(int i) nicht als explicit deklariert wurde.
-
c++ syntax ist doch krank.
-
Also mit Compiler kommt man drauf, ohne muss man um echt viele ecken denken. aber nettes beispiel
-
Hmmm, wann soll man eigentlich die Lösung posten, wenn keiner aus fairness gegenüber den anderen die Lösung sagen will
?
@otze: Das haste aber schnell weg editiert
-
also da fehlt ja schon das std:: vor dem vector ...
-
der fehler ist eigentlich sehr gewieft. der liegt an der definition des std::vector konstruktors, der hier verwendet wird. falls jemand mal nachgucken will
-
Ich denk das kann ich ohne nachzusehen sagen.
Soll ichs denn posten?
-
darthdespotism schrieb:
Soll ichs denn posten?
Siehe mein Edit
-
Nächster Code, wiedereinmal erst ein nicht kompilierbares Beispiel:
class MyClass { private: int a, b, c; public: MyClass() : a(5),b(3425),c(0) { } bool setC(char a) { return c=a; } friend ostream& operator<<(ostream& stream,MyClass& obj); }; ostream& operator<<(ostream& stream,MyClass& obj) { obj.setC('a'); stream << obj.a << obj.b << obj.c << endl; return stream; } int main() { MyClass a, b(a), c = MyClass(); cout << a << b << c << MyClass(); }
Edit: Kein Gewähr auf Folgefehler, die aus der Behebung des Hauptfehlers entstehen könnten
-
Zum ersten:
Der Konstruktor von std::vector ruft für 4 Elemente den Argumentlosen Constructor auf, der aber nicht deklariert ist oder so ähnlich
@ KasF: Ist es erlaubt den Compiler zu verwenden um seine Vermutung zu bestätigen?
-
darthdespotism schrieb:
Der Konstruktor von std::vector ruft für 4 Elemente den Argumentlosen Constructor auf, der aber nicht deklariert ist oder so ähnlich
Naja, das "oder so ähnlich" gefällt mir nicht
Glaube dir ehe nicht mehr das du nicht geschummelt hastdarthdespotism schrieb:
@ KasF: Ist es erlaubt den Compiler zu verwenden um seine Vermutung zu bestätigen?
Von mir aus, wenn du dir denkst die Lösung zu kennen, spricht nichts dagegen.
Zum ersten Code nochmal:
Ein/Der C'tor von vector sieht so aus:vector( size_type num, const TYPE& val = TYPE() );
Da ich schon aber selbst Konstruktoren mit Argumenten definiert habe, wird kein Standardkonstruktor definiert, der aufgerufen werden könnte, um die Elemente zu initialsieren.
Der Rest ist nur Ablenkung
-
KasF schrieb:
Der Rest ist nur Ablenkung
genau wie im zweiten beispiel. ich hab mir fast nen wolf gesucht, bis mir der fehler aufgefallen ist :p
-
-
KasF schrieb:
Glaube dir ehe nicht mehr das du nicht geschummelt hast
Soll ich jetzt beleidigt sein
Seit wann den n nicht mehr
-
hab die lösung von code 2
ein blick
hätts aber sicher auch nicht gefunden, wenn ich vor kurzem nicht das selbe problem gehabt hätte
-
ich _denke_ sie zu kennen, kam mir etwas dubios vor, habe allerdings noch nicht versucht sie zu überprüfen und bin mir an der Stelle auch nicht sicher
Der Code sollte nebenbei bemerkt auch jede Menge Warnings produzieren oder?
-
darthdespotism schrieb:
Der Code sollte nebenbei bemerkt auch jede Menge Warnings produzieren oder?
eigentlich sollte der keine einzige produzieren.
-
darthdespotism schrieb:
Der Code sollte nebenbei bemerkt auch jede Menge Warnings produzieren oder?
Nee, ohne die Fehlerstelle ist bei allen möglichen eingeschaltet Warnings bei mir kein warning ....
-
ok dan lieg a) ich falsch mit meiner Vermutung was der Fehler ist oder b) ich lieg mit den Warnings falsch ...
EDIT://
Ich geh dann mal ans nachsehen ob ich recht hatte mit dem FehlerDisqualifiziert mich halt dann für das Finden jeglichen anderen Fehlers
-
Ich werde noch 2-3 solcher Codes posten, danach wirds nich Stufe kniffliger mit Linkerfehlern bzw. kompilierbaren Fehlern. Heute aber keins mehr
Wäre aber auch mal schön, wenn jemand anderes ein paar Leckerbissen hätte ...