模板类编写注意事项

模版类的定义和实现不能分开写在不同文件中,否则会导致编译错误

原因:在C++中,在编译阶段才确定对象所占用的空间。模板类只有被真正使用的时候,编译器才知道,模板套用的是什么类型,应该分配多少空间。然后根据套用的类型进行编译。套用不同类型的模板类实际上就是两个不同的类型,因此这两个类型的共同成员函数实质上也不是同一个函数,仅仅是具有相似的功能。因此,模板类在套用不同类型以后,会被编译出不同的代码。

结论:模板类本身未指定所使用的数据类型,不能单独编译模板类的实现。 只用在使用模板类的阶段,指定了模板中的数据类型,编译器才能正常编译。因此,在实际开发中,必须把实现全部写在头文件里面,把声明和实现分开的做法不可取。

但是为了代码的清晰度,使用时,可以将模板类的实现放到class的外面。


你可能感兴趣的:(模板类编写注意事项)