我希望有一個帶有模板構造函數且沒有參數的非模板類。據我了解,這是不可能的(因為它會與默認構造函數發生沖突- 是嗎?),解決方法如下:class A{ template <typename U> A(U* dummy) { // Do something }};也許對此有更好的選擇(或更好的解決方法)?
3 回答

慕婉清6462132
TA貢獻1804條經驗 獲得超2個贊
在調用構造函數模板時,無法顯式指定模板參數,因此必須通過參數推導來推導它們。這是因為如果您說:
Foo<int> f = Foo<int>();
的<int>是該類型的模板參數列表Foo,而不是它的構造函數。構造函數模板的參數列表無處可去。
即使有解決方法,您仍然必須傳遞參數才能調用該構造函數模板。尚不清楚您要實現的目標。

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
您可以創建模板化工廠函數:
class Foo
{
public:
template <class T> static Foo* create() // could also return by value, or a smart pointer
{
return new Foo(...);
}
...
};
- 3 回答
- 0 關注
- 447 瀏覽
添加回答
舉報
0/150
提交
取消