R.5.5 Операции указатель-на-член

We use cookies. Read the Privacy and Cookie Policy

R.5.5 Операции указатель-на-член

Операции указатель-на-член применяются слева направо.

выражение-pm:

 выражение-приведения

 выражение-pm .* выражение-приведения

 выражение-pm -›* выражение-приведения

Бинарная операция .* связывает свой второй операнд, который должен иметь тип "указатель на член класса T", с первым операндом, имеющим тип класс T или такой класс, для которого T является однозначно определенным и достижимым базовым классом. Результатом будет объект или функция с типом, задаваемым вторым операндом.

Бинарная операция -›* связывает свой второй операнд, который должен иметь тип "указатель на член класса T", с первым операндом, имеющим тип "указатель на T" или тип "указатель на класс, для которого T является однозначно определенным и достижимым базовым классом". Результатом будет объект или функция с типом, задаваемым вторым операндом.

Если результат .* или -›* есть функция, то его можно использовать только в качестве операнда операции вызова функции (), например, операция

(ptr_to_obj-›*ptr_to_mfct)(10);

приводит к вызову функции-члена, обозначенной ptr_to_mfct, для объекта, на который настроен указатель ptr_to_obj. Результат операции .* или -›* является адресом, если второй операнд есть адрес.