Подтвердить что ты не робот

Может ли кто-нибудь объяснить этот С++ typedef?

Я только начал работать с С++ после того, как долго не работал с ним. Хотя большинство из них имеет смысл, есть несколько бит, которые я нахожу немного confuddling. Например, может кто-нибудь объяснить, что делает эта строка:

typedef bool (OptionManager::* OptionHandler)(const ABString& value);
4b9b3361

Ответ 1

Он определяет тип OptionHandler как указатель на функцию-член класса OptionManager и где эта функция-член принимает параметр типа const ABString& и возвращает bool.

Ответ 2

typedef bool (OptionManager::* OptionHandler)(const ABString& value);

Начнем с:

OptionManager::* OptionHandler

Это говорит о том, что ::* OptionHandler является функцией-членом класса OptionManager. * перед OptionHandler говорит, что это указатель; это означает, что OptionHandler является указателем на функцию-член класса OptionManager.

(const ABString& value) говорит, что функция-член примет значение типа ABString в ссылку const.

bool говорит, что функция-член возвращает логический тип.

typedef говорит, что с помощью "* OptionHandler" вы можете создать множество указателей на функции, которые могут хранить этот адрес этой функции. Например:

OptionHandler fp[3];

fp[0], fp[1], fp[2] сохранит адреса функций, семантика которых соответствует приведенному выше объяснению.

Ответ 3

это указатель на функцию-член OptionManager, которая принимает константу ABString refrence и возвращает bool