您的位置:首页 >百科知识 >

template<class T>(template)

大家好,我是小新,我来为大家解答以上问题。template,template很多人还不知道,现在让我们一起来看看吧!

1、楼主你好!

2、当然要写template <class T>了。

3、例如要写成员函数 Node<T>* NextNode()const;的实现

4、那么自然要写成

5、Node<T>* Node<T>::NextNode()const//注意加上Node<T>::作为域的限

6、 //制,这样就区别于全局函数。标志着它是Node<T>的成员函数

7、{

8、 return next;

9、}

10、但是这时候注意这个“T”是无法识别的,编译器根本不知道他是什么。

11、所以完整要写成

12、temolate <class T>//告诉编译器T是一个(模板)类型

13、Node<T>* Node<T>::NextNode()const

14、{

15、 return next;

16、}

17、所以每次类的实现前面都要写 “template <class T>” !

18、还有多文件的时候,理论上和单文件的时候没有任何区别。

19、但是注意:模板类或者函数最好不要写成多文件,因为这种“分离模型”虽然是“标准”所承认的,但是因为技术原因至今没有一个编译器能完美的支持模板的多文件!

20、顺便说一下,即使是C++的标准库都是把模板的定义和申明写在一个文件里的。

21、我想楼主问的我都说完了,如果还有不懂得,楼主可以参考《C++ Template》,它解释了C++关于模板的所有问题。

22、还有,这类关于语义的问题楼主最好参阅《The Design and Evolution of C++》

23、不知楼主还有啥不懂得,可以给我留言~~我们一起讨论

本文到此讲解完毕了,希望对大家有帮助。

免责声明:本文由用户上传,如有侵权请联系删除!