我想有指针类的方法,所以我有这样的:指针类方法
class foo {
public:
static void bar() {
}
};
void (foo::*bar)() = &foo::bar;
无法编译:(我得到:
> error: cannot convert ‘void (*)()’ to
> ‘void (foo::*)()’ in
> initialization
我想有指针类的方法,所以我有这样的:指针类方法
class foo {
public:
static void bar() {
}
};
void (foo::*bar)() = &foo::bar;
无法编译:(我得到:
> error: cannot convert ‘void (*)()’ to
> ‘void (foo::*)()’ in
> initialization
静态方法,当按名称使用而不是调用时,是一个指针。
void (*bar)() = foo::bar; // used as a name, it's a function pointer
...
bar(); // calls it
指针到静态构件具有相同的类型的指针,非成员
尝试:
void (*bar)() = &foo::bar;
TNX很多关于快速回答:) – mfolnovich 2009-10-10 13:01:10
bar()
是一个静态函数,换句话说没有this
参数。
void (*myfunptr)() = &(foo::bar);
TNX很多关于快速回答:) – mfolnovich 2009-10-10 13:04:00
TNX很多关于快速回答:) – mfolnovich 2009-10-10 12:59:19
不,这不是一个指针,它是一个函数。它虽然会*衰减*到函数指针。 – avakar 2009-10-10 14:13:15
哪一点更重要? – Will 2009-10-10 16:55:31