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

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

求指教,這個數據結構C++中template <typename Type> 是什么意思?

求指教,這個數據結構C++中template <typename Type> 是什么意思?

寶慕林4294392 2021-05-05 16:07:19
template <typename Type> int SeqList<Type>::Insert(Type x, int i)這里我知道是個函數模板,但是這里SeqList已經有數據類型是int,后面的<Type>是什么意思?
查看完整描述

2 回答

?
躍然一笑

TA貢獻1826條經驗 獲得超6個贊

實際上可以說沒有區別。

按 C++ 標準來說,template<typename T> 用于基礎數據類型,typename 指類型名,T 可以取 char int double 等。

template<class T> 用于類,T 可以取任何類。

但是這里有一個問題,結構體應該用 typename 還是 class? 結構體肯定不是基礎數據類型,但也不是類。

所以實際情況是,template<class T> 的 T 也可以取基礎數據類型,tempate<typename T> 的 T 也可以取類。

但有一個特例,就是當 T 是一個類,而這個類又有子類(假設名為 innerClass) 時,應該用 template<typename>:

typename T::innerClass myInnerObject;

這里的 typename 告訴編譯器,T::innerClass 是一個類,程序要聲明一個 T::innerClass 類的對象,而不是聲明 T 的靜態成員,而 typename 如果換成 class 則語法錯誤。

查看完整回答
反對 回復 2021-05-09
  • 2 回答
  • 0 關注
  • 502 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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