函数类型语法

时间:2013-07-19 15:34:17

标签: c++ member-function-pointers

我知道非指针函数类型的语法类似于void (int)。非指针成员函数类型的语法是什么?即class C; void (C::*)(int),但不是指针。

2 个答案:

答案 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::*

相关问题