Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Probleme mit C++

Pat002 - 39
Anfänger (offline)

Dabei seit 10.2004
7 Beiträge

Geschrieben am: 24.04.2011 um 11:09 Uhr

Servus,

vielleicht kann mir ja hier jemand weiterhelfen. Und zwar will ich einen konstruktor einer unterklasse aufrufen. Dabei wird zuvor aber immer der Konstruktor der Basisklasse aufgerufen, was ich aber nicht will. Kann man das Ganze irgendwie umgehen oder ist das nicht möglich?
Verdammnis - 47
Champion (offline)

Dabei seit 06.2007
2220 Beiträge

Geschrieben am: 24.04.2011 um 11:20 Uhr

Es gibt C++ Gruppen....da wird dir am besten geholfen.

Bitte hier Fußzeile einfügen.

Snowballed
Experte (offline)

Dabei seit 02.2011
1866 Beiträge

Geschrieben am: 24.04.2011 um 11:21 Uhr

Zitat von Verdammnis:

Es gibt C++ Gruppen....da wird dir am besten geholfen.
Er kann dir ja dann mal Real Life Programmieren ...

When in doubt, Barspin it.

bredator - 41
Champion (offline)

Dabei seit 03.2008
5319 Beiträge

Geschrieben am: 24.04.2011 um 11:36 Uhr

Zitat von Snowballed:

Zitat von Verdammnis:

Es gibt C++ Gruppen....da wird dir am besten geholfen.
Er kann dir ja dann mal Real Life Programmieren ...


Oder dir eine KI. Besser als gar keine...

Lache nicht über jemanden, der einen Schritt zurück macht. Er könnte Anlauf nehmen.

Pratsch - 31
Champion (offline)

Dabei seit 07.2009
2821 Beiträge

Geschrieben am: 24.04.2011 um 11:37 Uhr

Zitat von Pat002:

Servus,

vielleicht kann mir ja hier jemand weiterhelfen. Und zwar will ich einen konstruktor einer unterklasse aufrufen. Dabei wird zuvor aber immer der Konstruktor der Basisklasse aufgerufen, was ich aber nicht will. Kann man das Ganze irgendwie umgehen oder ist das nicht möglich?


So ist das nicht möglich, da bei dem Aufruf der abgeleiteten Klasse die Basisklasse mit aufgerufen wird.

awa

Student - 44
Anfänger (offline)

Dabei seit 02.2003
3 Beiträge
Geschrieben am: 24.04.2011 um 11:55 Uhr

Mach doch im Konstruktor der Basisklasse einfach nichts, sondern ruf dort eine Funktion Init() z.B. auf. In der Funktion machst du die Dinge, die bisher im Konstruktor waren.

Diese Funktion machst du in der Basisklasse virtual und überschreibst sie in der abgeleiteten Klasse. Dort lässt du sie einfach was anderes oder gar nichts machen.

Das sollte sich genau so verhalten, wie du es haben willst.
ItsPayne - 41
Profi (offline)

Dabei seit 12.2008
997 Beiträge

Geschrieben am: 24.04.2011 um 12:08 Uhr
Zuletzt editiert am: 24.04.2011 um 12:10 Uhr

Du kannst doch auch mehrere konstruktoren anlegen (überladen). Dann legst halt zusätzlich nen leeren in der basisklasse an und rufst den dann explizit im konstruktor der erbenden klasse auf.

Aber allgemein klingt das bei dir nach einem konzeptproblem! Du solltest dein klassendesign überdenken. Denn es ist eigentlich nicht sinn der sache, dass die "basisfuntionalität" nicht "konstruiert" werden soll. Die basisfunktionalität sollte immer gleich bleiben. Die spezifische funktionalität implementiert dann die abgeleitete klasse und entsprechend solltest du spezifische parameter beim konstruktor der abgeleiteten klasse übergeben. und einen passenden basiskonstruktor aufrufen.

Vielleicht sollte deine basisklasse auch eher abstrakt definiert sein? Das macht zumindest im klassischen modell meistens sinn, da ich idr. eben kein "flugzeug" instanzieren will, sondern eine konkrete ableitung davon, z.b. ne "747".

Wenn du lange genug in einen Abgrund blickst, blickt der Abgrund auch in dich hinein.

__Technoo
Halbprofi (offline)

Dabei seit 03.2010
289 Beiträge

Geschrieben am: 24.04.2011 um 13:08 Uhr

Frag halt Yasin :D

Super Tofuboy ftw. ! ! (:

Akuu_
Halbprofi (offline)

Dabei seit 01.2011
254 Beiträge
Geschrieben am: 24.04.2011 um 13:59 Uhr

Zitat von __Technoo:

Frag halt Yasin :D
warum?
weil er ein scriptkiddie ist?
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -