Кто-то может объяснить это определение типа C++?

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

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

11
задан MSalters 17 February 2010 в 09:12
поделиться

4 ответа

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

26
ответ дан 3 December 2019 в 01:24
поделиться
typedef bool (OptionManager::* OptionHandler)(const ABString& value);

Начнем с:

OptionManager::* OptionHandler

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

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

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

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

OptionHandler fp[3];

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

9
ответ дан 3 December 2019 в 01:24
поделиться

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

4
ответ дан 3 December 2019 в 01:24
поделиться

Это определение типа указателя на функцию-член. См. FAQ по C ++ .

2
ответ дан 3 December 2019 в 01:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: