Невозможно вызвать функцию-член без объекта = C ++ - PullRequest
14 голосов
/ 22 июля 2010

Я снова чищу и получаю сообщение об ошибке:

Невозможно вызвать функцию-член без объекта.

Я звоню как:

FxString text = table.GetEntry(obj->GetAlertTextID());
FxUChar outDescription1[ kCP_DEFAULT_STRING_LENGTH ];

IC_Utility::CP_StringToPString(text, &outDescription1[0] );

Строка: IC_Utility :: CP_StringToPString (text, & outDescription1 [0]); получает ошибку

Моя функция:

void IC_Utility::CP_StringToPString( FxString& inString, FxUChar *outString)
{
}

Я знаю, это должно быть что-то простое, чего мне не хватает.

Ответы [ 5 ]

22 голосов
/ 22 июля 2010

Если вы написали функцию CP_StringToPString, вам нужно объявить ее static:

static void IC_Utility::CP_StringToPString( FxString& inString, FxUChar *outString)

В качестве альтернативы, если это функция в стороннем коде, вам нужно объявить объект IC_Utility для вызова:

IC_Utility u;
u.CP_StringToPString(text, &outDescription1[0] );
10 голосов
/ 22 июля 2010

Ваш метод не является статическим, и поэтому он должен вызываться из экземпляра (вроде как говорит об ошибке). Если ваш метод не требует доступа к каким-либо другим переменным или методам экземпляра, вы, вероятно, просто хотите объявить его static. В противном случае вам придется получить правильный экземпляр и выполнить метод для этого экземпляра.

3 голосов
/ 22 июля 2010

Вы должны объявить функцию с ключевым словом static:

class IC_Utility {
    static void CP_StringToPString( FxString& inString, FxUChar *outString);
1 голос
/ 22 июля 2010

Вам необходимо объявить функцию static в объявлении вашего класса.например,

class IC_Utility {
   // ...

   static void CP_StringToPString(FxString& inString, FxUChar *outString);

   // ...
};
0 голосов
/ 22 июля 2010

«статический» правильный ответ. или, вы можете передать ему пустой указатель this, если он не используется в функции:

((IC_Utility*)NULL)->CP_StringToPString(...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...