模版在C++中具有非常重要的地位,STL就是大量运用模版写出来的。 模版的优点我就不一一列举了。这里我只说一下模版的原理。 当编译器遇到模版方法定义的时候,编译器进行语法检查,但是并不会编译模版。编译器无法编译模版定义,因为编译器不知道要使用的类型是什么,编译器不知道x和y的类型的情况下无法为x=y这样的语句生成代码。 当编译器遇到一个实例化的模版的时候,例如vector
#include
using namespace std;
template
class test{
private:
T data;
public:
test(T d):data(d){
}
void show()const{
cout<<”this data is “<<data<<endl;
}
};
int main()
{
test
ti.show();
test
ts.show();
}
例如上面的例子编译器只会生成test的int以及string版本,其他的如double,char等版本则不会生成。 —————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/c学习笔记34模版的原理/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!