«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно вызвать указатель функции члена в C ++?

Как правильно вызвать указатель функции члена в C ++?

Опубликовано в 2025-03-23
Просматривать:592

How to Correctly Invoke a Member Function Pointer in C  ?

указатель функции участника: рассеивать правильный синтаксис

При работе с указателями функции члена важно придерживаться правильного синтаксиса, чтобы обеспечить успешное выполнение. Давайте углубимся в типичную проблему, возникающую при попытке вызвать функцию члена через указатель функции члена и предоставить необходимое решение.

фрагмент ошибочного кода:

class cat {
public:
   void walk() {
      printf("cat is walking \n");
   }
};

int main(){
   cat bigCat;
   void (cat::*pcat)();
   pcat = &cat::walk;
   bigCat.*pcat();
}

ошибка компиляции: bigcat.*Pcat (); Оператор генерирует ошибку.

решение:

Ключ для решения этой проблемы заключается в обеспечении выражения BIGCAT.*PCAT () имеет соответствующее приоритет. Приоритет оператора диктует, что у неаровных операторов есть приоритет над бинарными операторами. Таким образом, скобки необходимы для определения приоритетов функции Call () над операцией привязки к указателю к члену.*. ^ ^

(bigCat.*pcat)();
^            ^

Caleteses можно использовать для управления приоритетом оператора и обеспечения правильного порядка выполнения.

]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3