2017-02-06 6 views
-1

Я получаю сообщение об ошибке после вызова TerminalFrame :: start() ;. Что я делаю неправильно?piThreadCreate error after call function

TerminalMain.cpp|223|error: cannot call member function ‘int TerminalFrame::start()’ without object|

void TerminalFrame::start() 
{ 
StaticText1->SetLabel(wNFC); 
} 

PI_THREAD (startNfc) 
{ 

    TerminalFrame::start(); 

    return NULL ; 
} 

piThreadCreate (startNfc) ; 
+0

эта функция должна быть 'static' для того, чтобы назвать без объекта (например,' TerminalFrame :: Start() '), но без этого его следует называть' someTerminalFrame.start() '. –

+0

TerminalFrame.start(); Ошибка TerminalMain.cpp | 230 |: ожидаемый неквалифицированный идентификатор до '.' Token | –

+0

Несомненно, это потому, что 'TerminalFrame' выглядит как имя класса. У вас есть объект этого класса или, возможно, ссылка на него? Или попробуйте изменить свою функцию на 'static void TerminalFrame :: start'. –

ответ

1

Для вызова функции-члена, как ClassName::foo() функция должна быть static.

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

ClassName var; 
var.foo(); 
+0

TerminalFrame его wxFrame. Я не могу создать его снова –

+1

Если вы уже создали его, у вас должен быть уже обработанный дескриптор, который вы можете использовать. – 4386427