呃,好久没更新C++了,不过也快更新完了。说实话,我对于泛型编程(GP)也不是很了解,除了用STL之外,自己很少去写模板。模板类的用户,通常是应用程序员。也许对于写底层库的程序员来说,泛型编程才会经常接触吧。
实现自己的模板(template)
类模板成员函数的定义语法:
template <typename elemtype>
BinaryTree<elemtype>::BinaryTree(const BinaryTree&){}
//BinaryTree是类名,在前面加了BinaryTree<elemtype>::作用域后,后面的都不需要再加了
正确编译模板类的方法:
1、因为模板实例化需要看到模板的定义,而不仅仅是声明。所以模板类的定义全部放在头文件中。这种叫做包含编译模型(见C++PRIMER p543)。
当然,可以在头文件中的最后包含源文件,这样可使得定义和声明分开。不过工程中就不能添加这个.cpp了,因为这个.cpp编译通不过。其实就是在头文件的最后include进去就可以了。
2、分开头文件和源文件,在main中包含源文件
3、使用分别编译模型,export关键字目前VC不支持。
