我有一個模板構造函數的類:模板構造函數中使用派生類
class TCons {
template <typename T> TCons(T t);
}
是一家專業的實現:
template <> TCons::TCons(int i) { doMyStuff(i); }
我也有一個基類的特化:
template <> TCons::Tcons(TBase &t) { doMyStuff(t); }
但是,當我嘗試使用派生對象初始化一個TCons對象時,這似乎不起作用作爲參數。
class TDeriv: public TBase { };
TDeriv td;
TCons tc = td;
我不能使用指針來解決這個問題(因爲一切都被包裝在一個宏內)。問題出現在鏈接階段。
這是錯誤的,還是我錯過了什麼?
修復拼寫錯誤和語法,以便編譯代碼。 – user2079303
爲什麼使用專業化而不是簡單的重載? – Jarod42
失去'template <>' –