Я никогда не могу вспомнить ужасный C++ функция declspec, поэтому всякий раз, когда я должен узнать синтаксис, который описывает функцию-член, например, я просто индуцировать преднамеренную ошибку компилятора, которая обычно отображает правильный синтаксис для меня.
Так Дано:
class StateMachine {
bool stateA(int someArg);
};
Что синтаксис ЬурейеЕ stateA в? Понятия не имею .. поэтому давайте попробуем назначить ему что-то не связанного и посмотреть, что говорит составитель:
char c = StateMachine::stateA
Компилятор говорит:
error: a value of type "bool (StateMachine::*)(int)" cannot be used to initialize
an entity of type "char"
Там он: «BOOL (Statemachine :: *) (int) "это наш typedef.
Вау, эта проблема намного сложнее, чем кажется на первый взгляд, на мой взгляд. Существует множество способов решить эту проблему, если вы готовы нарушить полную безопасность типов, но в противном случае ... ничего себе. – 2008-10-02 05:37:45