我需要用 C 寫一本字典。我寫了一個包含 1 個鍵 值對的 Pair 類。我還寫了一個包含向量對的字典。我想多載 [] 運算子,但它給了我一個錯誤。
template <typename TKey, typename TValue>
class Pair
{
public:
TKey key;
TValue value;
Pair()
{
this->key = 0;
this->value = 0;
}
Pair(TKey key, TValue value)
{
this->key = key;
this->value = value;
}
};
template <typename TKey, typename TValue>
class Dictionary
{
private:
vector<Pair<TKey, TValue>> pairs;
//...
public:
Pair operator[] (unsigned index)
{
return this->pairs[index];
}
//...
};
我得到的錯誤:
deduced class type 'Pair' in function return type
我能用它做什么?
uj5u.com熱心網友回復:
編譯器需要知道Pair你回傳的是什么型別的。
Pair<TKey, TValue> operator[] (unsigned index)
{
...
}
您可能需要添加型別別名來縮短宣告:
template <typename TKey, typename TValue>
class Dictionary
{
public:
using EntryType = Pair<TKey, TValue>;
private:
vector<EntryType> pairs;
//...
public:
EntryType operator[] (unsigned index)
{
return this->pairs[index];
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/450462.html
