Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Frage zu abstrakten Klassen unter C++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.01.2006, 15:46 Uhr
~Lunar
Gast


Hallo,

ich hab da mal ein kleines Problem mit abstrakten Klassen in C++....

Also, ich will eine abstrakte Oberklasse schreiben, ein gemeinsames Interface für die abgeleiteten Klassen bieten UND von der keine Instanz erzeugt werden kann (sonst wär sie ja nicht abstrakt...;-)...)....

..nun kriegt man es ja rel. leicht hin, in dem man die Methoden mit virtual und =0 deklariert. Das Problem ist nur, dass mir der Compiler dann auch nicht mehr erlaubt, diese Methoden in der abstrakten Basisklasse zu implementieren!!!

==> ich will also eine abstrakte Klasse, die eine Schnittstelle für die Kindklassen bietet UND aber die Methoden auch selbst implementiert....in Java geht sowas...geht das auch mit c++??

Hintergrund:
*********
Für diejenigen, die sich fragen wozu ich das überhaupt will. Nun, man stelle sich für eine Application das Exceptionhandling vor:

==> da gibt es dann eine abstrakte Oberklasse MyAppException. Diese bietet eine Reihe
von Funktionen, die CExeption nicht bietet..z.b. getStackTrace() und
getNestedException()...

==>von dieser Klasse leitet man dann beliebige weitere Exceptionklassen ab. Da sie alle von
MyAppException abstammen, bieten sie alle das selbe Interface

==>aber ich will doch die Methoden getStackTrace() und getNestedException() nur einmal
implementieren, nämlich in MyAppException


**************
Das ganze läuft prima. Das einzigste, was mich stört ist, dass ich in der Lage bin eine Instanz von MyAppException zu erzeugen...ich finde, das ist schlechtes Design....

Hat da jemand ne Idee, oder unterstützt C++ das gar nicht....???
Bis dann-
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.01.2006, 18:50 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
mach die Methoden der Basisklasse nicht rein virtuell und mach dafür den Konstruktor der "abstrakten" Basisklasse protected.
Dann hast du ziemlich genau was du möchtest.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: