Vererbung



  • Sehr geehrte Damen und Herren,

    ich solle ein Programm schreiben (unter der der Konsolenanwendung 32), dass in OOP geschrieben wird und mit einer Vererbung.
    Das Programm an sich ist ein Videotheksnprogramm.

    Und zwar habe ich das Problem, dass er meine Variablen der Vererbungen nicht erkennt, wobei sie vorhanden sind:

    Der Variable möchte ich in der Main.h benutzen(siehe Script)

    Ich habe es unter Microsoft Visual Studio 2005 programmiert:

    main.cpp

    //////////////////////////////////////////////////////////////

    #include "main.h"
    
    using namespace std;
    
    int main()
    {
    	int auswahl;
     do
     {
    	textbackground(7);
    	system("CLS");
    
    	MakeWindow(12, 4, 60, 19, BUILD_TEXTATTR(BLACK, CYAN),CONWND_BORDER_STARS ,
    	CONWND_SHADOW_RIGHT);
    
    	TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Menue"));
    
    	PrintWindow(6, 5, TEXT("Daten eintragen                   [1]"));
    	PrintWindow(6, 7, TEXT("Bibliothek oeffnen                [2]"));
    	PrintWindow(6, 9, TEXT("Daten speichern                   [3]"));
    	PrintWindow(6, 11, TEXT("Daten einlesen                    [4]"));
    	PrintWindow(6, 13, TEXT("Ausgang                           [0]"));
    
    	PrintWindow(6, 17, TEXT("Eingabe: "));
    	gotoxy(26,20);
    	textcolor(4);
    	textbackground(3);
    	cin >> auswahl;
    
    		switch(auswahl)
    		 {
    			case 1:{
    
    					einlesen();
    					break;
    				   }
    
    			case 2:{
    					break;
    				   }
    
    			case 3:{
    					break;
    				   }
    
    			case 4:{
    					break;
    				   }
    
    		 };
     }
     while(auswahl != 0);
    
    }
    

    main.h

    //////////////////////////////////////////////////////////////

    #include <iostream>
    #include "conioex.h"
    #include "bank.h"
    #include "conwnd.c"
    #include <windows.h>
    
    void einlesen();
    
    filme meinefilme ((((((((((((((((((((((verusacht einen Fehler)))))))))))))))))
    
    void einlesen()
    {
    	int auswahl;
      do
      {
    	system("CLS");
    
    	textbackground(7);
    	system("CLS");
    
    	MakeWindow(12, 4, 60, 19, BUILD_TEXTATTR(BLACK, CYAN),CONWND_BORDER_STARS ,
    	CONWND_SHADOW_RIGHT);
    
    	TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Dateneingabe"));
    
    	PrintWindow(6, 5, TEXT("Filme                             [1]"));
    	PrintWindow(6, 7, TEXT("Spiele                            [2]"));
    	PrintWindow(6, 13, TEXT("Ausgang                           [0]"));
    	PrintWindow(6, 17, TEXT("Eingabe: "));
    
    	gotoxy(26,20);
    	textcolor(4);
    	textbackground(3);
    
    	std::cin >> auswahl;
    
    		switch(auswahl)
    			{
    				case 1:
    					{
    						int anzahl;
    
    						system("CLS");
    
    						textbackground(7);
    						system("CLS");
    
    						MakeWindow(12, 4, 60, 19, BUILD_TEXTATTR(BLACK, CYAN),CONWND_BORDER_STARS ,
    						CONWND_SHADOW_RIGHT);
    
    						TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Filme"));
    
    						PrintWindow(6, 5, TEXT("Anzahl der Filme?: "));
    						std::cin >> anzahl;
    
    						break;
    					}
    
    				case 2:
    					{
    						break;
    					}
    
    			};
    
      }
      while(auswahl!=0);
    }
    

    bank.h (Klasse)

    ///////////////////////////////////////////////////////////

    class bank
    {
    private:	int anzahl;
    			char titel;
    
    public:     bank();
    
    			void setAnzahl(int wert);
    			int getAnzahl(void);
    			void setTitel(char wert);
    			char getTitel(void);
    };
    

    bank.cpp

    //////////////////////////////////////////////////////

    #include "bank.h"
    
    bank::bank()
    {
    	bank::anzahl = 0;
    }
    
    void bank::setAnzahl(int wert)
    {
    	anzahl = wert;
    }
    
    int bank::getAnzahl(void)
    {
    	return(anzahl);
    }
    
    void bank::setTitel(char wert)
    {
    	titel = wert;
    }
    
    char bank::getTitel(void)
    {
    	return(titel);
    }
    

    filme.h

    ////////////////////////////////////////////////////////////////

    #ifndef __FILME__H
    #define __FILME__H
    
    #include "bank.h"
    
    class filme: public bank
    {
    	private:	int kategorie;
    				int medium;
    
    	public:		filme();
    
    				void setKategorie(int wert);
    				int getKategorie(void);
    				void setMedium(int wert);
    				int getMedium(void);
    
    };
    
    #endif
    

    filme.cpp

    ////////////////////////////////////////////////////////////

    #include "filme.h"
    
    filme::filme()
    {
    	filme::kategorie = 0;
    	filme::medium = 0;
    }
    
    void filme::setKategorie(int wert)
    {
    	kategorie = wert;
    }
    
    int filme::getKategorie(void)
    {
    	return(kategorie);
    }
    
    void filme::setMedium(int wert)
    {
    	medium = wert;
    }
    
    int filme::getMedium(void)
    {
    	return(medium);
    }
    

    Spiele.h

    //////////////////////////////////////////////////

    #ifndef __SPIELE__H
    #define __SPIELE__H
    
    #include "bank.h"
    
    class spiele : public bank
    {
    	private:	int kategorie;
    				int medium;
    
    	public:		spiele();
    
    				void setKategorie(int wert);
    				int getKategorie(void);
    				void setMedium(int wert);
    				int getMedium(void);
    
    };
    
    #endif
    

    spiele.cpp

    ////////////////////////////////////////////

    #include "spiele.h"
    
    spiele::spiele()
    {
    	spiele::kategorie = 0;
    	spiele::medium = 0;
    }
    
    void spiele::setKategorie(int wert)
    {
    	kategorie = wert;
    }
    
    int spiele::getKategorie(void)
    {
    	return(kategorie);
    }
    
    void spiele::setMedium(int wert)
    {
    	medium = wert;
    }
    
    int spiele::getMedium(void)
    {
    	return(medium);
    }
    

    Mein Compiler gibt mir folgendes aus:

    Fehler 5 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'meinefilme' e:\schule\as\oop\vererbungen\vererbungen\main.h 9

    Fehler 6 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. e:\schule\as\oop\vererbungen\vererbungen\main.h 9

    Fehler 7 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. e:\schule\as\oop\vererbungen\vererbungen\main.h 9



  • Irgendwoher will der Compiler auch die Klassen kennen, mit denen er arbeiten soll / d.h. du benötigst ein '#include "filme.h" in der Datei - eventuell auch für die "Spiele.h".

    (btw, im Header sollten nur Funktionsdefinitionen für Inline-Funktionen und Templates stehen - und für inline ist die 'void einlesen()' etwas zu umfangreich)


Anmelden zum Antworten