作者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
1F:推 hanks78:谢谢 非常详细及完整=ˇ= 05/13 14:58
2F:推 yoco315:谢谢 非常完整及详细O口Q 05/13 22:24