Hi,
ich habe eine Klasse 'cMyServer', die eine Funktion 'GetIt' bietet, die einen string aus der Klasse ausgibt.
Code:
class cMyServer : public cMyData
{
public:
cMyServer(int num, char name[100]):cMyData(num){ strcpy(itsName,name); }
virtual ~cMyServer() {}
virtual void Show() { cMyData::Show(); cout << itsName << endl; }
virtual int Test(const cMyServer &);
virtual const char * GetIt() { return itsName; }
private:
char itsName[100];
int itsValue;
};
Ausserdem bietet die Klasse eine Funktion, die ihren eigenen string 'itsName' mit dem einer anderen cMyServer Instanz vergleicht (virtual int Test(const cMyServer &))
Code:
int cMyServer::Test(const cMyServer & other)
{
if(strcmp(this->GetIt,other.GetIt)==0) return 1;
else return 0;
}
Leider führt die Funktion zu einem Compilerfehler, den ich nicht so ganz verstehe.
Code:
data2.cc: In member function `virtual int cMyServer::Test(const cMyServer&)':
data2.cc:26: error: argument of type `const char*(cMyServer::)()' does not
match `const char*'
Die Rückgabetypen von this->GetIt und other.GetIt sollten ja gleich sein, da es sich um die selbe Funktion handelt.
Hat jemand ne Ahung, wie man das hinbekommt, bzw, wo mein Fehler liegt?
Lesezeichen