R.8.2.3 Указатели на члены

R.8.2.3 Указатели на члены

В описании T D, в котором D имеет вид

полное-имя-класса :: * список-спецификаций-cv opt D1

тип описываемого идентификатора есть "… список-спецификаций-cv указатель на член класса полное-имя-класса типа T".

Например, во фрагменте

class X {

public:

 void f(int);

 int a;

};

int X::* pmi = &X::a;

void (X::* pmf)(int) = &X::f;

pmi и pmf описываются как указатель на член X типа T и указатель на член X типа void(int) соответственно. Эти объекты можно использовать так:

X obj;

//…

obj.*pmi = 7; // присвоить 7 члену obj типа int

(obj.*pmf)(7); // вызвать функцию-член obj

 // с параметром 7

Отметим, что указатель на член нельзя настроить на статический член класса (§R.9.4), см. также §R.5.5 и §R.5.3.