2014-11-14 3 views
2

Привет Мне было интересно, если кто-то может объяснить мне поле в структуру, которая выглядит следующим образом:Нечетное поле в структуре? C++

struct example { 
void (SomeClass::*someMethod)(); 
}; 

Что именно это и как/почему вы его используете? Благодарю.

+0

http://stackoverflow.com/questions/8865766/get-a-pointer-to-object-member-function –

+0

Это то, что происходит, когда люди не используют typedefs. – o11c

ответ

5

Эта структура содержит указатель на функцию с возвращаемым типом void и без параметров.

Мы установили бы этот указатель на адрес фактической функции и выполнили бы функцию через указатель через некоторое время. Указатели функций очень удобны для предоставления различных функций для обработки некоторых задач в зависимости от обстоятельств.

+0

Почему этот указатель на функцию находится в структуре? Какой смысл инкапсулировать этот указатель в структуре? Разве это не было бы без структуры, инкапсулирующей указатель? – Varaquilex

+0

Он выглядит как указатель на функцию method/member, а не на обычную функцию. – Scooter

+0

Удивительно, что вы поддержали это ... – ravi

1
void (SomeClass::*someMethod)(); 

Это объявление указателя на функцию-член класса SomeClass, принимающего и возвращающего пустоту.

Смежные вопросы