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