Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Funktion in klasse aufrufen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.04.2005, 15:26 Uhr
RedEagle



Hi
ich hab eine Klasse:

C++:
class xyz
{
public:
  void funktion1();
  void funktion2();
};

void xyz::funktion1()
{
int x=1+1;
}

void xyz::funktion2()
{
funktion1(); //Hier kommt ein Fehler
}



wenn ich sowas mache, kommt immer folgender Fehler:

Fehler:

In member function ...
no matching function for call to ...
candidates are: ...



warum geht das nicht??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.04.2005, 15:55 Uhr
Pablo
Supertux
(Operator)


Probiere mal so


C++:
void xyz::funktion2()
{
    xyz::funktion1();
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.04.2005, 16:06 Uhr
9ball




Zitat von Pablo:
Probiere mal so

C++:
void xyz::funktion2()
{
    xyz::funktion1();
}



das ist quatsch. wenn memberfunktionen sich gegenseitig aufrufen muss man nicht den klassennamen davor schreiben. der fehler muss wo anders sein
--
one for all and all for one
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.04.2005, 23:05 Uhr
ao

(Operator)


@RedEagle: Ist das der Original-Code? Bei mir (Dev-C++ / mingw) kompiliert das einwandfrei. Bitte bei Fehlern möglichst das Original posten und nicht etwas, das so ähnlich aussieht.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.04.2005, 15:46 Uhr
RedEagle



hier mal der Original-code:


C++:
#include "RST_window.hpp"
#include <vector>
using namespace std;

class RST_menu
{
public:
  
   bool InitialMenu(RST_window window);
  
   bool ChangeColors(int bordercolor, int textcolor, int bgcolor);
   bool ChangeFullscreen(bool fullscreen);                  
  
   int  GetTCColor();
   int  GetBGColor();
   int  GetBRColor();
   void GetPositions(int *X, int *Y, int *toX, int *toY);
  
   bool IsPressed(int mausX, int mausY, int *menugruppe);
   bool WaitForItem(int mausX, int mausY, int menugruppe, int *item, int lange, int breite); //Die Betroffene Funktion
   bool Actitity(bool activity);
   bool GetActivity();
  
   bool AddGroup(char *Gruppe);
   bool AddItem(char *title, int ID, int Gruppe);
  
   bool DrawItems(int Gruppe, int mausX, int mausY, int *item);
   bool DrawMenu();
  
private:

   RST_window RMx_window;

   int  RMi_posX;
   int  RMi_posY;
   int  RMi_toX;  
   int  RMi_toY;  
  
   bool RMb_fullscreen;
   bool RMb_activ;

   int  RMi_bordercolor;
   int  RMi_textcolor;
   int  RMi_bgcolor;
  
   int  RMi_maxGroups;
  
   vector<char*> Groups;
   vector<int>   GroupIDs;
   vector<int>   GRP_posX;
   vector<int>   GRP_toX;
  
   vector<char*> Items;
   vector<int>   ItemIDs;
   vector<int>   ItemAtGroup;
  
};

//...

bool RST_menu::WaitForItem(int mausX, int mausY, int menugruppe, int *item, int lange, int breite)
{
int X   = GRP_posX[menugruppe];
int Y   = RMi_posY+1;
int toX = GRP_posX[menugruppe]+breite;
int toY = RMi_posY+1+lange;

//(Noch in arbeit...)

return true;
}  

//...

bool RST_menu::DrawItems(int Gruppe, int mausX, int mausY, int *item)
{

//(Ne menge anderes zeug...)

WaitForItem(mausX, mausY, Gruppe, &item, lange, breite); //Und hier kommt der Fehler
return true;
}



und hier die Original Fehler-meldungen:

Fehler:

In member function `bool RST_menu::DrawItems(int, int, int,
no matching function for call to `RST_menu::WaitForItem(int&,
candidates are: bool RST_menu::WaitForItem(int, int, int,


--
MFG RedEagle

Dieser Post wurde am 12.04.2005 um 15:51 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.04.2005, 15:58 Uhr
Tommix



Hallo,
item ist schon int* - also ist &item int**.

C++:
WaitForItem(mausX, mausY, Gruppe, item, lange, breite);


sollte funzen.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.04.2005, 16:02 Uhr
ao

(Operator)



C++:
WaitForItem(mausX, mausY, Gruppe, &item, lange, breite); //Und hier kommt der Fehler


Ich vermute, das &item ist falsch; item ist schon ein Pointer. Gehts vielleicht so besser?

C++:
WaitForItem(mausX, mausY, Gruppe, item, lange, breite);



ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.04.2005, 16:03 Uhr
ao

(Operator)


Mist. Zu langsam.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.04.2005, 16:07 Uhr
RedEagle




An sone art von Fehler hab ich überhaupt nicht gedacht...


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.04.2005, 16:56 Uhr
Th



Tja, man sollte auch die Fehlermeldungen richtig lesen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: