C++模板实例化
2016-05-08 16:54
323 查看
深入理解C++中第七章提到模板实例化参数的选择:函数的决议结果只和函数参数有关和返回值无关。记录一下。
测试程序如下:
测试结果如下:
int foo
double foo
当模板有实例化具体类型时,才产生具体的对象类图:
测试程序如下:
#include <iostream> using namespace std; int foo(int d) { cout << "int foo" << endl; return d+1; } double foo(double d) { cout << "double foo" << endl; return d+1; } #include <iostream> using namespace std; extern int foo(int); extern double foo(double); template <class type> class A { private: int _val; type _member; public: void invariant() { _member = foo(_val); }//形参为int,返回型为double,但调用foo(int) type type_dependent() { return foo(_member);//形参为double,调用foo(double) } }; int main(int argc, char *argv[]) { A< double > a; a.invariant(); a.type_dependent(); return 0; }
测试结果如下:
int foo
double foo
当模板有实例化具体类型时,才产生具体的对象类图:
Class A<double> size=12 align=4 base size=12 base align=4 A<double> (0x0xb686e850) 0
相关文章推荐
- C++中的new与delete
- 关联账户 第六届蓝桥杯大赛个人赛决赛(C语言B组)第三题
- Name That Number
- c++引用“&”
- c++第5次实验
- c++作业5
- C++作业5
- C++第五次实验-------多继承
- 一些C++的开源项目和C++库以及修炼C++的方法
- c++第5次作业
- Add and Search Word
- 手动构造完全与`char *argv[]` 等价的参数
- 53. Maximum Subarray 连续子序列的最大和
- c++中值得初始化
- c++第5次实验-数组分离
- 实验:C++实验5-项目1
- C语言排序之二分查找
- C++实验5-求和
- MD5消息摘要的C++实现
- C语言输入输出函数归纳总结(printf/fprintf/sprintf/putchar/putch/putc/puts/fputs......)