作者littleshan (我要加入劍道社!)
看板C_and_CPP
標題Re: [問題] C++中class的define問題
時間Wed May 13 13:39:29 2009
※ 引述《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