早上晒晒太阳

My way ahead is a long long one oh  I will seek my beauty high and low

2006年11月29日 #

VC的模板写法

  模板在没有实例化之前是无法编译的,因为没有使用类型实例化的模板是不能生成代码的。所以一般处理模板的方法是,将模板的声明和定义都放到一个.h文件之中,或者使用export关键字,但是后者在很多C++编译器实现(如:VC)中不被支持.
  如果说硬要把声明和定义分开来写的,也是可以的,不过用起来就不好了!例如,要做一个Stack,会在main中调用Stack<int> s;这样的语句,那么就必须在Stack.cpp文件的后面加上一句template class Stack<int>;

 1 template <class T>
 2 class Stack
 3 {
 4 public:
 5     Stack();
 6     ~Stack();
 7 public:
 8     void pop();
 9     //
10 };

 1 #include "Stack.h"
 2 
 3 template <class T>
 4 Stack<T>::Stack(void)
 5 {}
 6 
 7 template <class T>
 8 Stack<T>::~Stack(void)
 9 {}
10 
11 template <class t>
12 void Stack<T>::pop()
13 {
14     //
15 }
16 
17 template class Stack<int>;


  可以看出,用户要用其它类型的Stack的话就必须在Stack.cpp文件中加入具体的类型.不然就会出现类似这样的错误提示:
  error LNK2019: 无法解析的外部符号 "public: __thiscall Stack<int>::~Stack<int>(void)" (??1?$Stack@H@@QAE@XZ),该符号在函数 _main 中被引用
  所以,还是所声明与定义都会在.h文件中吧.

posted @ 2006-11-29 20:24 结斌 阅读(506) | 评论 (2)编辑 收藏

现在的研究生

        昨天,去听报告了!这是学校的规定:新生必须听四次研究生处组织的报告!
        去的人还是比较多的,我坐在后面!还没开始,左邻右里就开始发话了,在那里狂吹!这没什么,反正还没有开始嘛,说她们也不好意思!我就安静的坐好!
  好了,开始了!这次做讲座的是生命科学院的博导,内容是:从DNA的发展,看现代生物工程!是一个比较有趣的话题!我周边的研究生,一直没有停止她们的悬河,还是在决堤,滔滔不绝!我也算是一支独秀了(没话可说)!讲座是一个半小时,她们也就在那狂轰了一个半小时!
   最后了,王老师说到了提问的环节了!后面一个女生出了这么一句:那个老师怎么还在说话啊,浪费人时间啊!
  现在的研究生的素质怎么这样子啊!?你要听不听,开"小"差还算次之,居然发出这种言论,可耻!

posted @ 2006-11-29 10:43 结斌 阅读(119) | 评论 (0)编辑 收藏

仅列出标题