C++ template overload
2015-09-07 00:17
302 查看
运行结果:
Test.cpp
may be you are right may be you are right 9 7 6 5 4 3 2 1 10 66 9 7 6 5 4 3 2 1 10 66 Program ended with exit code: 0
Test.cpp
#include <iostream> using namespace std; template <typename T> void show(T a, size_t); template <typename T> void show(T a); int main() { int a[] = {9, 7, 6, 5, 4, 3, 2, 1, 10,66}; int b[sizeof(a) / sizeof(int)] = {}; // 建立同数组a相同大小的数组b并将其所有元素初始化为0 char aa[] = "may be you are right"; char bb[strlen(aa) + 1]; // 多分配一个字节存储截止符'\0' memcpy(bb, aa, strlen(aa) + 1); memcpy(b, a, sizeof(a)); // 因为memcpy是逐字节拷贝,而数组b为int类型,拷贝的长度应为sizeof(a) show(a, sizeof(a) / sizeof(int)); show(b, sizeof(b) / sizeof(int)); show(aa); show(bb); return 0; } template<typename T> void show(T a, size_t len) { for (int i = 0; i < len; i++) cout << a[i] << ' '; cout << endl; } template<typename T> void show(T a) { while ((*a) != '\0') cout << *a++; cout << endl; }
相关文章推荐
- C++ Template 基础篇(一):函数模板
- C语言数据类型总结
- C++ 类型转换笔记
- C++学习笔记【转载】
- C++ 重载操作符之一(指针运算符*,->)
- C语言内存分配情况详解
- C/C++基础知识:typedef用法小结
- 快速判断一个数能否被1、2、3、4、5、6、7、8、9、10、11、12、13、17、19、23等整除的规律总结
- C++ 多态,虚函数
- 项目4.3 摄氏温度转华氏温度
- [转]C#调用C++类(以COM组件的形式)
- C语言变长数组data[0]【总结】
- stl容器中的元素删除方法
- 项目4.2 计算两个并联电阻的值
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
- c++ 联合体
- c和c++中NULL和0的区别
- C/C++ IO细节
- c++构造函数&析构函数
- 项目4.1 计算长方形的面积和周长