Übergabe von Zeiger auf Objekt an eine Funktion

GreatWho

Grünschnabel
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



ich benutze Borland C++5.02 unter Windows Vista

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

GreatWho
 
Hallo

Hilfreich wäre es, wenn du uns ein bisschen mehr Infos geben könntest.

Verwendest du C oder C++?

Wie sieht die Klasse / Struktur MyHerdanlage aus?

Ohne diese Infos wirds leider ein bisschen schwierig.

Gruss

FG
 
Entschuldige für die Fehlenden Infos, dachte, dass durch die Angabe von Zeiger auf ein Objekt klar ist, dass es sich um C++ handelt.

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();
};
 
Problem gelöst

ich habe im Sammelheader den Wächter zur verhinderung von doppelten Deklarationen vergessen. nun läuft alles.


Thema erledigt

GreatWho
 
Zurück