看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《hanks78 (ㄏㄏ)》之銘言: : inline explicit stack::stack (int n=7) : .........省略... {}; : inline void stack::push(const stack::value_type & putin ){ : : : : : } : 大致上是這樣 : 結果VC2008 一直跟我說 : '{ctor}' : 成員函式在 'stack' 中未宣告 =====>指的是stack(int)這行 : 以及 : 使用類別 樣板 必須有 樣板 引數清單 =====>指的是stack::push這行 : 可是我第一個有宣告在裡面阿@@ : 而且第二個push的涵式 也有給參數和樣板型態= ="" : 真的不懂哪裡有問題@@ : 請各位幫我解惑一下 : 謝謝╭(─╴╴─)╮ stack 是 class template 而不是 class 當你把 class template 的成員寫在 class 外部時 也要提供 template 參數 因為它們並不是一般的 class member,而是 class template member 具體一點地說就是像這樣: template <typename T> inline stack<T>::stack(int n) { ... } template <typename T> inline void stack<T>::push(const stack<T>::value_type& putin) { ... } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.151.2
hanks78:謝謝 非常詳細及完整=ˇ= 05/13 14:58
yoco315:謝謝 非常完整及詳細O口Q 05/13 22:24