Ответ 1
Требуется больше скобок:
(bigCat.*pcat)();
^ ^
Вызов функции (()
) имеет более высокий приоритет, чем оператор привязки указателя к элементу (.*
). Унарные операторы имеют более высокий приоритет, чем бинарные операторы.
Я пытаюсь выполнить некоторое тестирование с указателем на функцию-член. Что не так с этим кодом? Оператор bigCat.*pcat();
не компилируется.
class cat {
public:
void walk() {
printf("cat is walking \n");
}
};
int main(){
cat bigCat;
void (cat::*pcat)();
pcat = &cat::walk;
bigCat.*pcat();
}
Требуется больше скобок:
(bigCat.*pcat)();
^ ^
Вызов функции (()
) имеет более высокий приоритет, чем оператор привязки указателя к элементу (.*
). Унарные операторы имеют более высокий приоритет, чем бинарные операторы.