 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Stefan Tappertzhofen Guest
|
Posted: Thu Mar 30, 2006 3:06 pm Post subject: Funktionsübergabeproblem |
|
|
Hallo,
ich habe ein Problem (VS C++ 2005) bei der Funktionsübergabe.
Zunächst habe ich eine Klasse mit dieser public Methode:
class FzgVerhalten
{
public:
FzgVerhalten(void);
FzgVerhalten(Weg*);
virtual ~FzgVerhalten(void);
double dStrecke(Fahrzeug* , double );
private:
Weg* p_ptWeg;
};
double FzgVerhalten::dStrecke(Fahrzeug* ptFahrzeug, double dZeitraum)
{
// (...)
}
und soll aus der Klasse Fahrzeug die Funktion aufrufen:
void Fahrzeug::vAbfertigung(void)
{
double dWegStrecke = FzgVerhalten::dStrecke(this, p_dZeitDifferenz);
// (...)
}
Ich bekomme nur dann diesen Fehler:
fahrzeug.cpp(119) : error C2352: 'FzgVerhalten::dStrecke': Unzulässiger
Aufruf einer nicht statischen Memberfunktion
fzgverhalten.h(12): Siehe Deklaration von 'FzgVerhalten::dStrecke'
Danke für die Hilfe,
Gruß,
Stefan
--
Stefan Tappertzhofen
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de |
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Thu Mar 30, 2006 3:06 pm Post subject: Re: Funktionsübergabeproblem |
|
|
Stefan Tappertzhofen wrote:
| Quote: | Hallo,
ich habe ein Problem (VS C++ 2005) bei der Funktionsübergabe.
Zunächst habe ich eine Klasse mit dieser public Methode:
class FzgVerhalten
{
public:
FzgVerhalten(void);
FzgVerhalten(Weg*);
virtual ~FzgVerhalten(void);
double dStrecke(Fahrzeug* , double );
private:
Weg* p_ptWeg;
};
double FzgVerhalten::dStrecke(Fahrzeug* ptFahrzeug, double dZeitraum)
{
// (...)
}
und soll aus der Klasse Fahrzeug die Funktion aufrufen:
void Fahrzeug::vAbfertigung(void)
{
double dWegStrecke = FzgVerhalten::dStrecke(this, p_dZeitDifferenz);
// (...)
}
Ich bekomme nur dann diesen Fehler:
fahrzeug.cpp(119) : error C2352: 'FzgVerhalten::dStrecke': Unzulässiger
Aufruf einer nicht statischen Memberfunktion
fzgverhalten.h(12): Siehe Deklaration von 'FzgVerhalten::dStrecke'
|
Ja, das sagt doch genau, was das Problem ist. dStrecke ist eine
nicht-statische Memberfunktion von FzgVerhalten, als muß es eine Instanz
von FzgVerhalten geben, auf die du sie anwendest. Die gibt's bei dir aber
nicht.
PS: Deine Namensgebung ist ja grausam...
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de |
|
| Back to top |
|
 |
Stefan Tappertzhofen Guest
|
Posted: Thu Mar 30, 2006 7:59 pm Post subject: Re: Funktionsbergabeproblem |
|
|
Hallo,
| Quote: | Ja, das sagt doch genau, was das Problem ist. dStrecke ist eine
nicht-statische Memberfunktion von FzgVerhalten, als muß es eine Instanz
von FzgVerhalten geben, auf die du sie anwendest. Die gibt's bei dir aber
nicht.
|
die Namensgebung ist Vorgabe von der Uni, außerdem habe ich in der Funktion
(Fahrzeug::vAbfertigung) keine weiteren Variablen, die mit der Klasse
zusammenhängen. Ich weiss echt nicht mehr weiter. Das ganze Skript hier so
so grausam geschrieben. Ich kann leider an den Funktionsaufrufen nichts
ändern.
Gruß,
Stefan
--
Stefan Tappertzhofen
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de |
|
| Back to top |
|
 |
Markus Pesti Guest
|
Posted: Fri Mar 31, 2006 12:31 pm Post subject: Re: Funktionsbergabeproblem |
|
|
Stefan Tappertzhofen wrote:
| Quote: | Hallo,
Ja, das sagt doch genau, was das Problem ist. dStrecke ist eine
nicht-statische Memberfunktion von FzgVerhalten, als muß es eine Instanz
von FzgVerhalten geben, auf die du sie anwendest. Die gibt's bei dir aber
nicht.
die Namensgebung ist Vorgabe von der Uni, außerdem habe ich in der Funktion
(Fahrzeug::vAbfertigung) keine weiteren Variablen, die mit der Klasse
zusammenhängen. Ich weiss echt nicht mehr weiter. Das ganze Skript hier so
so grausam geschrieben. Ich kann leider an den Funktionsaufrufen nichts
ändern.
Gruß,
Stefan
|
Wie jetzt, du kannst an den offensichtlich falschen Funktionsaufrufen
nichts ändern? Dann wird sich der Code aber auch nicht kompilieren
lassen. Ansonsten:
static double dStrecke(Fahrzeug* , double );
Oder beim Aufruf:
FzgVerhalten Fv;
double dWegStrecke = Fv.dStrecke(this, p_dZeitDifferenz);
Markus
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|