0
我想在我的代码中创建成员函数的查找表,但它似乎试图调用我的复制构造函数,这是我通过扩展“不可复制”类来阻止的。我拥有的是类似以下的东西。成员函数指针调用复制构造函数?
enum {FUN1_IDX, FUN2_IDX, ..., NUM_FUNS };
class Foo {
fun1(Bar b){ ... }
fun2(Bar b){ ... }
...
void (Foo::*lookup_table[NUM_FUNS])(Bar b);
Foo(){
lookup_table[FUN1_IDX] = &Foo::fun1;
lookup_table[FUN2_IDX] = &Foo::fun2;
}
void doLookup(int fun_num, Bar b) {
(this->*lookup_table[fun_num])(b);
}
};
的错误是“(这一点 - > ...”行试图调用拷贝构造函数,它是不可见的为什么试图做到这一点,和我有什么改变如此。它会不会?
你能发布你看到的确切的错误消息吗? – 2009-08-18 14:27:58
你是在谈论Foo拷贝构造函数还是Bar拷贝构造函数?如果酒吧,那么这是一个非常基本的问题(以下用litb回答)。如果Foo,请发布一个可编译的代码示例,因为当我填充... s并使Foo从一个不可复制的类继承时,这工作得很好。 – 2009-08-18 14:33:24