我有模板類如何存儲模板對象在地圖
template<class T1 ,class T2, class T3>
class server_fd
{
T1 servport;
T2 server_ip;
T3 servobj;
int local_port;
public:
server_fd(const T1& servport, const T2& server_ip,const T3 servobj) {
this->servport=servport;
this->server_ip=server_ip;
this->servobj=servobj;
cout <<"check \n"<<this->server_ip;
}
};
現在我想保存這個類在地圖中的對象,所以我聲明地圖這樣的..
map<int,server_fd* > MapPairList;
在此之後,當我complile我的代碼它給這個錯誤 錯誤:模板參數2無效 錯誤:模板參數4無效
但是,如果我沒有你se模板類我能夠成功定義地圖。
是否有任何其他方式來定義存儲模板類對象的映射?請告訴我。
如何使用自定義類型的map *>'?請記住,該模板根本沒有泛型,地圖中的每個項目必須具有三種類型的相同組合!因此,除非定義一些接口並在其中封裝函數和訪問器,否則不能在一個映射中將'server_fd '與'server_fd '混合。 –
'server_fd'不是一個類型,它是一個模板。你需要給它T1,T2,T3的特定類型才能使用它。 – Flexo
我試過這個映射 *> ==> map *>不知道第三個參數是否正確放置了..在T3我必須通過服務器對象。我仍然收到錯誤Transportlayer.cpp:44:錯誤:在模板參數列表中爲模板參數列表中的類型/值不匹配,該模板參數列表中的模板 class server_fd' Transportlayer.cpp:44:error:expected一個類型,得到'server_fd' Transportlayer.cpp:44:錯誤:模板參數2無效 Transportlayer.cpp:44:錯誤:模板參數4無效 –
user1693566