0
我有一個模板類,像這樣的時候:無可用appropiate默認的構造函數使用模板類
template<class T>
class List
{
private:
struct node
{
T value;
node *next, *prev;
};
}
當T = myClass的創建此列表類的實例*我沒有問題,因爲值將是一個指針,但如果它是一個對象,創建節點實例會導致「沒有適用的默認構造函數可用」錯誤,如果此類沒有默認構造函數。
我可以通過將T值更改爲T *值來解決此問題,但我需要將這些值的副本放入列表中,以便在列表之外移除它們時,它們在此處保持有效。
什麼是正確的方式來解決這個問題?
當然,您可以將默認ctor添加爲過載。那意味着'T'需要是默認的或者可以共同構建的。 – MSalters 2010-11-04 09:52:04
謝謝,這很好用:-) – NachoSoto 2010-11-04 10:04:22
@NachoSoto:在這種情況下,隨意接受答案是正確的(答案左側的勾號)。 – 2010-11-04 10:35:10