Announcement

Collapse
No announcement yet.

Zeiger auf Objekt an Funktion übergeben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeiger auf Objekt an Funktion übergeben

    Hallo zusammen

    folgendes Problem, ich baue mein Programm(Konsolenanwendung) auf Modulen auf, so habe ich ein Modul gemacht, um einen PA zu erstellen. dessen Header lautet:
    Code:
    #ifndef MODULNEWPA_H
    #define MODULNEWPA_H
    #include "MyHerdanlage.h"
    
    void newPA(MyHerdanlage* PAaktiv);
    
    #endif
    funktioniert bisweilen alles tadellos.
    erstelle ich nun ein zweites Modul mit einer andern Funktion, dessen Header folgendermassen lautet:
    Code:
    #ifndef MODUL_TEST_H
    #define MODUL_TEST_H
    #include "MyHerdanlage.h"
    
    void testing(MyHerdanlage* PAaktiv);
    
    #endif
    entsteht beim compilieren folgende Fehlermeldung:
    Fehler: ModulTest.h(5,26):'MyHerdanlage' cannot start a parameter declaration

    Die Klasse MyHerdanlage:

    Code:
    #ifndef MYHERDANLAGE_H // Wächter
    #define MYHERDANLAGE_H
    
    #include "MyClasses.h"
    #include "MyGrill.h"
    
    class MyHerdanlage : public MyGeraet{
    private:
    	int nInduktionsfuss;
    	MyInduktionsfuss* Induktionsfuss;
    	int nGrill;
    	MyGrill* Grill;
    public:
    	MyHerdanlage();
    	MyHerdanlage(char PA[]);
    	MyHerdanlage(int nindukt, int ngrill);
    		
    	
    	void setnIduktionsfuss(int nindukt);
    	int getnInduktionsfuss();
    	void setnGrill(int ngrill);
    	int getnGrill();
    
    	~MyHerdanlage();
    };
    
    #endif
    die in der Klasse MyHerdanlage benutzten Klassen(auch diese besitzen Wächter, habe sie aber in diesem Post weggelassen):
    Code:
    class MyInduktionsfuss : public MyBaugruppe{
    private:
    	MyInduktionsmodul Induktionsmodul;
    	MySpule Spule;
    	int Belegung;
    public:
    	MyInduktionsfuss();
    	MyInduktionsfuss(char art[],char bez[], char PA[], int i, bool test);
    	void setBelegung(int Bel);
    	int getBelegung();
    };
    Code:
    class MyGrill : public MyGeraet{
    private:
    	float Temperatur;
    public:
    	MyGrill();
    	MyGrill(char art[],char bez[], char PA[], int i, bool test);
      void setTemperatur(float Temp);
      float getTemp();
    };
    und
    Code:
    class MyGeraet : public MyBaugruppe{
    protected:
    	double U[6];//12,23,31,1n,2n,3n
    	double I[6];//12,23,31,1n,2n,3n
    	double P[7];//12,23,31,1n,2n,3n,
    	bool net;// true = PP // false = PN
    public:
    	MyGeraet();
    	MyGeraet(char art[], char bez[], char PA[], int i, bool test);
    
    	void setU(double messwert, int i);
    	void setI(double messwert, int i);
    	void setP(double messwert, int i);
    	double getU(int i);
    	double getI(int i);
    	double getP(int i);
    	double getPsum(bool net);
    };
    ->
    Code:
    class MyBaugruppe{
    protected:
    	char ArtNr[8];
    	char Bezeichnung[20];
    	char PANr[8];
    	char BuiltIn[8];// zuweisung zu Herdanlage
    	int index;
    	bool tested;
    public:
    	MyBaugruppe();	
    	MyBaugruppe(char art[],char bez[],char PA[], int i, bool test);
    
    	void setArtNr(char art[]);
    	char* getArtNr();
    	void setBezeichnung(char bez[]);
    	char* getBezeichnung();
    	void setPANr(char PA[]);
    	char* getPANr();
    	void setBuiltIn(char built[]);
    	char* getBuiltIn();
    	void setindex(int i);
    	int getindex();
    };


    ich benutze Borland C++5.02 unter Windows Vista

    für eine Hilfe wäre ich euch dankbar.

    GreatWho

  • #2
    Fehler gefunden...

    habe dummerweise im Sammelheader, wo alle andern Header includiert werden den Wächter wegen der doppelten Deklarationen vergessen....

    das Problem hat sich somit gelöst.

    GreatWho

    Comment

    Working...
    X