4
。我將舉例說明:我可以繼承模板類並將類型設置爲我目前試圖繼承的類的模板化子類嗎?我知道,可怕的標題是:
template <typename ValType> struct MemMapFileHashTable : MemMapFileStructured<MemMapFileHashTable<ValType>::kvp> {
struct kvp {
uint32_t key;
ValType val;
};
MemMapFileHashTable(const char* fileName, bool write = false, int64_t chunkB = 65536) : MemMapFileStructured(fileName, write, chunkB) { }
};
這樣的想法是,我創建了一個哈希表具有一定ValType這反過來又KVP的具有一定ValType。
爲了利用我繼承的類,我需要將kvp設置爲類型說明符,但是由於kvp是在哈希表類中聲明的,它不會讓我。有沒有辦法說服它呢?
我可以在哈希表中創建MemMapFileStructured的一個實例,但我認爲這應該是我創建的類的第5個繼承繼承,我不想打破我的目標。