我知道非指针函数类型的语法类似于void (int)
。非指针成员函数类型的语法是什么?即class C; void (C::*)(int)
,但不是指针。
答案 0 :(得分:4)
答案是void (C::*)(int)
。
void (C::*)(int)
不是指针类型。成员函数的指针are not pointers。他们are very strange animals。
他们恰好碰巧使用类似于指针的名称和符号;这是我们必须忍受的新生事物。
答案 1 :(得分:0)
对于任何类C
和任何非成员类型T
,指向成员的指针类型为T C::*
。
因此,如果你有一个T = R(A1, A2, A3)
类型的函数,那么作为一个成员函数,它的指向成员类型的指针是
T C::* = R (C::*)(A1, A2, A3)
例如,在
中struct C
{
R foo(A1, A2, A3);
int x;
}
值&C::foo
具有此类型。此外,&C::x
的类型为int C::*
。