依賴名稱不是型別 關於模板類中的迭代器

2021-06-29 12:22:22 字數 465 閱讀 6451

**:

今天在封裝stl時候遇到了這麼乙個問題

[cpp]view plain

copy

print?

template

<

class

t>  

class

mylist  

;  

當我想這樣封裝迭代器的時候,編譯器告訴我:依賴名稱不是型別

[cpp]view plain

copy

print?

template

<

class

t>  

class

mylist  

;  

這樣寫即可。typename關鍵字會將後面的內容認為是乙個型別。

但是其實還是沒完全搞明白,待搞明白了來續寫個詳細原因。

C Templates 模板中的名稱

名稱的分類 識別符號 運算子id 型別轉換函式id 模板id 非受限id 受限id 受限名稱 非受限名稱 依賴性名稱 非依賴性名稱 如果乙個名稱使用域解析運算子或者成員訪問運算子來顯式表明它所屬的作用域,就稱該名稱為受限名稱。如果乙個名稱依賴於模板引數,就稱為依賴性名稱。名稱查詢 受限名稱的名稱查詢...

Item 43 訪問模板基類中的名稱

從面相物件 c 轉移到模板 c 時,你會發現類繼承在某些場合不在好使了。比如父類模板中的名稱對子類模板不是直接可見的,需要通過 this 字首 using 或顯式地特化模板父類來訪問父類中的名稱。因為父類模板在例項化之前其中的名稱是否存在確實是不確定的,而 c 偏向於早期發現問題 early dia...

關於模板類中靜態成員

類模板例項化的每個模板類都有自己的類模板靜態資料成員,該模板類的所有物件共享乙個靜態資料成員。比如int的所有例項共享乙個靜態資料成員,char的所有例項共享乙個。下面來看個例子 include using namespace std template class testclass int tes...