Problem mit ableitungskonstruktor
-
hiho @all.
ich habe ein kleines Problem. die base-klasse alleine funktoniert,
aber wenn ich nen objekt von der ableitung erstellen will spackt er rum.#include <iostream> using namespace std; class base { public: base(int); ~base(); base(); }; base::base(int a) {cout << "KONST VON BASE\n\n";} class sub : public base { public: sub(); ~sub(); }; int main() { cout << "MAIN\n"; base a(4); sub b; }
-
Bunti schrieb:
objekt von der ableitung erstellen will spackt er rum.
Ah, "er spackt rum". Alles klar!
Ich würde sagen während du die Konstruktoren/Destruktoren implementierst überlege dir einfach mal wie man eine ordentliche Fehlerbeschreibung erstellt...
-
Hallo
der Konstruktor von sub muß natürlich an base angepaßt sein, z.B. :
[cpp]sub::sub() : base(1)
{cout << "KONST VON SUB\n\n";} [/cpp]
Und wie bereits gesagt die Destruktoren nicht vergessen zu implementieren.
Und über aussagekräftige Fehlerbeschreibungen nachdenken.bis bald
akari
-
Ich habe ein kleines Problem. die base-klasse alleine funktoniert,
aber wenn ich nen objekt von der ableitung erstellen will spackt er rum.Was will uns der Autor dieser Frage damit wohl sagen.
Ein Compilerfehler, wahrscheinlich, denn das ganze ist nicht mehr
als ein Code-Fragment, das nicht mal nährungsweise compiliert wird.
Funktionale Fehler, Konstruktor, Ableitung, ... wer weiss, mangels
funktionierendem und sinnvollem Code nicht feststellbar. Da funktioniert
nichts, weder mit noch ohne Ableitung.
-
ich wollte damit sagen das er es nicht compiliert. fehlermeldung gibts keine (die man lesen kann).
hmm. du hast dort 1 übergeben damit klappt es.
ist das also zwingend das man einen wert übergibt?
ich dachte dann durchläuft er in der base klasse
einfach einen standard-konstruktor. also einen der nix macht..thx & cu
-
Hallo
nein, du mußt keinen Basis-Konstruktor angeben bzw. kannst auch den Standard-Konstruktor nehmen. Einfach mal ausprobieren.
Sollte ein Beispiel sein, weil ich dachte, das du diesen speziellen c'tor aufrufen willst.bis bald
akari
-
kurze frage:
heisst das, wenn ich in der basis-klasse einen konstruktor habe der einen parameter erwartet, MUSS ich in der ableitung angeben wie er aufgerufen wird!??? "also z.b. sub::sub() : base()" ???thx!!