我正在學習模板和運算符重載。我已經寫了一些代碼,但我很困惑...讓我解釋...C++模板和運算符重載
template <class T>
class tempType
{
public:
T value;
bool locked;
tempType():locked(false)
{
value = 0;
}
T operator=(T val)
{
value=val;
return value;
}
tempType<T> operator=(tempType<T> &val)
{
value=val.value;
return *this;
}
operator T()
{
return value;
}
};
我沒有...
int main(void)
{
tempType<int> i;
tempType<bool> b;
tempType<float> f;
i.value = 10;
i = i + f;
return 0;
}
我需要什麼樣的代碼,以執行
寫tempType<T> operator=(tempType<T> &val){}
另外,爲什麼operator T()
是必需的?
該參數應該是'const'。 – WhozCraig
不確定是否是這樣,但是要覆蓋默認的'operator =',您應該將其定義爲'tempType operator =(const tempType &val){}'。現在你需要通過'i.operator =(other_i)'顯式調用方法。 –
luk32