我正在尝试创建一个指向私有成员函数的指针数组。数组本身是私有的,所以我不明白为什么它说:
错误:'void Foo::foo1(int)' 是私有的
这有效:
class Foo {
public:
Foo();
void foo1(int);
void foo2(int);
private:
void (Foo::*someMethods[])(int);
void foo3(int);
};
Foo::Foo() {}
void (Foo::*someMethods[])(int) = {&Foo::foo1, &Foo::foo2};
void Foo::foo1(int) {}
void Foo::foo2(int) {}
void Foo::foo3(int) {}
这不起作用:
class Foo {
public:
Foo();
private:
void (Foo::*someMethods[])(int);
void foo1(int);
void foo2(int);
void foo3(int);
};
Foo::Foo() {}
void (Foo::*someMethods[])(int) = {&Foo::foo1, &Foo::foo2};
void Foo::foo1(int) {}
void Foo::foo2(int) {}
void Foo::foo3(int) {}