|
|
В описании 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.
| |