Не может назвать функцию членства без объекта = C++

Я повторяю снова, и я получаю ошибку:

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

Я звоню как:

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

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

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

Моя функция:

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

Я знаю, что это должно быть что-то простое, которое я пропускаю.

14
задан jDOG 21 July 2010 в 22:23
поделиться

5 ответов

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

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

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

IC_Utility u;
u.CP_StringToPString(text, &outDescription1[0] );
22
ответ дан 1 December 2019 в 08:15
поделиться

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

class IC_Utility {
   // ...

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

   // ...
};
1
ответ дан 1 December 2019 в 08:15
поделиться

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

10
ответ дан 1 December 2019 в 08:15
поделиться

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

class IC_Utility {
    static void CP_StringToPString( FxString& inString, FxUChar *outString);
3
ответ дан 1 December 2019 в 08:15
поделиться

"static" - правильный ответ. Или, вы можете передать ему указатель NULL "this", если он не используется в функции:

((IC_Utility*)NULL)->CP_StringToPString(...);
-3
ответ дан 1 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: