C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Funktionsübergabeproblem

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Stefan Tappertzhofen
Guest





PostPosted: Thu Mar 30, 2006 3:06 pm    Post subject: Funktionsübergabeproblem Reply with 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'

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





PostPosted: Thu Mar 30, 2006 3:06 pm    Post subject: Re: Funktionsübergabeproblem Reply with quote



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





PostPosted: Thu Mar 30, 2006 7:59 pm    Post subject: Re: Funktionsbergabeproblem Reply with quote



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





PostPosted: Fri Mar 31, 2006 12:31 pm    Post subject: Re: Funktionsbergabeproblem Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.