亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C ++模板構造函數

C ++模板構造函數

C++
湖上湖 2019-12-11 15:09:10
我希望有一個帶有模板構造函數且沒有參數的非模板類。據我了解,這是不可能的(因為它會與默認構造函數發生沖突- 是嗎?),解決方法如下:class A{   template <typename U> A(U* dummy) {   // Do something   }};也許對此有更好的選擇(或更好的解決方法)?
查看完整描述

3 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

在調用構造函數模板時,無法顯式指定模板參數,因此必須通過參數推導來推導它們。這是因為如果您說:


Foo<int> f = Foo<int>();

的<int>是該類型的模板參數列表Foo,而不是它的構造函數。構造函數模板的參數列表無處可去。


即使有解決方法,您仍然必須傳遞參數才能調用該構造函數模板。尚不清楚您要實現的目標。



查看完整回答
反對 回復 2019-12-12
?
慕田峪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(...);

    }

...        

};



查看完整回答
反對 回復 2019-12-12
  • 3 回答
  • 0 關注
  • 447 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號