PersonalCorpus 版 (精华区)

发信人: Aarchbishop (菩提·路在脚下!你呢), 信区: C_and_CPP
标  题: Re: 问题:模板类的静态数据成员如何初始化?各位大...
发信站: 哈工大紫丁香 (2003年11月03日11:44:11 星期一), 站内信件


这样写就应该没问题了...:)

参见c++ primer 关于类模板的静态成员函数 :)))

//初始化静态成员m_count 
template<class T> 
    int Counter<T>::m_count = 0;

【 在 zhjsh (阿郑) 的大作中提到: 】
: 标  题: 问题:模板类的静态数据成员如何初始化?各位大虾!
: 发信站: 哈工大紫丁香 (Mon Nov  3 11:00:25 2003), 站内信件

: 问题:模板类的静态数据成员如何初始化?各位大虾!
: #include <iostream>
: using namespace std;
: //建立对象计数器模板类,如果建立一个<class T>对象,计数器加一,
: //如果析构一个对象,计数器减一
: template<class T>
: class Counter
: {
: public:
:   Counter(int step = 1) //构造函数,相当于构造了step个 <class T>对象
:   {
:       m_step = step;
:       m_count += m_step;
:   }
:   ~Counter(){ m_count -= m_step; }; 
:   int GetCout(){ return m_count; }; 

: public: 
:   static int m_count; 
:   int m_step;
: };

: //初始化静态成员m_count 
: int Counter<class T>::m_count = 0;

: void main(void)
: {
:   Counter<int> myCounter;
:   cout << myCounter.GetCout();
: }
: //以下是编译错误
: /*
: Compiling...
: countobject.cpp
: Linking...
: countobject.obj : error LNK2001: unresolved external symbol "public: static in
: t  Counter1<int>::m_count" (?m_count@?$Counter1@H@@2HA)
: Debug/countobject.exe : fatal error LNK1120: 1 unresolved externals
: Error executing link.exe.

: countobject.exe - 2 error(s), 0 warning(s)
: */
: 但是,如果去掉模板声明<class T>,编译能够通过;
: 在初始化静态成员m_count 时,将class T改为int,也能通过,但是这去失去了模板类的优
: 越性。

: 问题:
: 模板类的静态数据成员如何初始化?

: --
: ∴°★.☆° .★·°∴°★.° .·。∴°
: °∴ 那怕星际无垠 ☆° .·★°∴°.°°
: ∴°.°★ .·°∴°.°∴°.★☆° .·
: °.☆° .★·我也要追到你 °.°°.★
: .·°∴★°.°∴°.☆° .·°∴°.°
: .·°∴°★.°.∴·°°并永远爱你∴☆°

: ※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 202.118.250.6]


--
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃·     我们奔奔波波,悲悲乐乐,自己追逐生命,嬉戏人生                    ·┃
┃       我们把童年抛了,把青春抛了,去追求一个叫成功的东西                 ┃
┃       我们把自己抛了,把父母抛了,去追求一个叫爱情的东西                 ┃
┃·     我们淡忘了往事,但当我们哭泣时,才知道往事从未曾离开过我们       ·┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.224.14]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.828毫秒