Anzeige:
Ergebnis 1 bis 15 von 25

Thema: Probleme mit abgeleiteten Klassen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    02.08.2008
    Beiträge
    177

    Probleme mit abgeleiteten Klassen

    Hi,

    ich habe ein Problem bei dem ich nicht weiter komme. Ich möchte Abgeleitete Klassen für einander austauschen.
    Sprich ich habe zwei Basisklassen Document und Mask. Von denen habe ich die Klassen BookDocument, BookMask,
    RecipeDocument, RecipeMask abgeleitet.
    In meinem Programm möchte ich nach belieben die Abgeleiteten Klassen für einander austauschen.

    Code:
    class Document{};
    
    class BookDocument: public Document{};
    
    class RecipeDocument: public Document{};
    
    class Mask{};
    
    class BookMask: public Mask{};
    
    class RecipeMask: public Mask{};
    
    if(test == "recipe"){
         document = static_cast<RecipeDocument *>(document);
         document = new RecipeDocument;
    		
         mask = static_cast<RecipeMask *>(mask);
         mask = new RecipeMask(document); 
    }
    else if(test == "book"){
         document = static_cast<BookDocument *>(document);
         document = new BookDocument;
    		
         mask = static_cast<BookMask *>(mask);
         mask = new BookMask(document); 
    }
    Zum einen bekomme ich Probleme bei der Vorwärts Deklaration,

    Code:
    class BookDocument: public Document{
    ...
    };
    
    class Document;
    Zum Anderen hat der static_cast nicht das gebracht was ich wollte.
    Code:
         document = static_cast<RecipeDocument *>(document);
    Und ich muss in jeder Methode der Abgeleiteten Klasse die Methode der Basis Klasse aufrufen:

    Code:
    void BookDocument::init(){
    
         Document::init();
    
    }
    Was auch nicht gerade schön ist.

    Gern kann ich auch den Quellcode hinauf laden. Doch wollte ich es erst einmal übersichtlich belassen.
    Geändert von dml (20-12-2013 um 12:41 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •