Я пытаюсь получить логическое значение из одной из двух функций-членов.Я хотел бы вызвать функцию-член (main), которая будет указывать на одну из двух функций-членов на основе значения, переданного в main ... вот что у меня есть:
class CRoutine{
...
BOOL (*MainRoutine(BOOL opcode))();
static BOOL SubRoutine1();
static BOOL SubRoutine2();
...
};
BOOL (*CRoutine::MainRoutine(BOOL opcode))()
{
switch ( opcode )
{
case false:
MessageBox(NULL, L"Routine1", L"Routine1", MB_OK);
return &CRoutine::SubRoutine1;
case true:
MessageBox(NULL, L"Routine2", L"Routine2", MB_OK);
return &CRoutine::SubRoutine2;
default:
MessageBox(NULL, L"Default Routine Selected", L"Routine1", MB_OK);
return &CRoutine::SubRoutine1;
}
}
BOOL CRoutine::SubRoutine1()
{
MessageBox(NULL, L"Routine1", L"Routine1", MB_OK);
return true;
}
BOOL CRoutine::SubRoutine2()
{
MessageBox(NULL, L"Routine2", L"Routine2", MB_OK);
return false;
}
winMain(...)
{
...
m_routine = new CRoutine();
BOOL result = m_routine->MainRoutine(0);
...
}
Мой вопрос:
Как мне вызвать MainRoutine (), чтобы получить логическое значение из SubRoutine1 () или SubRoutine2 ().Когда я запускаю программу как есть, я получаю следующую ошибку:
ошибка C2440: «инициализация»: невозможно преобразовать из «BOOL (__cdecl *) (void)» в «BOOL»
ThisЯ в основном интересуюсь теорией, я знаю, что есть и другие способы получить такой простой ответ ... заранее спасибо.