模板的声明和实现
来源:互联网 发布:邦威 洗浴软件 编辑:程序博客网 时间:2024/05/13 09:39
通过显式的模板实例化得到类型。将所有的显式实例化过程安放在另外的文件中。在本例中,可以创建一个新文件templateinstantiations.cpp:
// array.h#ifndef MYARRAY_H#define MYARRAY_Htemplate <typename T, int SIZE>class Myarray{ T data_[SIZE]; Myarray (const Myarray& other); const Myarray& operator = (const Myarray& other);public: Myarray(){}; T& operator[](int i); //{return data_[i];} const T& get_elem (int i) const; //{return data_[i];} void set_elem(int i, const T& value); //{data_[i] = value;} operator T*(); //{return data_;}};#endif
// array.cpp#include "array.h"template<typename T, int SIZE> T& Myarray<T, SIZE>::operator [](int i){ return data_[i];}template<typename T, int SIZE> const T& Myarray<T, SIZE>::get_elem(int i) const{ return data_[i];}template<typename T, int SIZE> void Myarray<T, SIZE>::set_elem(int i, const T& value){ data_[i] = value;}template<typename T, int SIZE> Myarray<T, SIZE>::operator T*(){ return data_;}
// templateinstantiations.cpp#include "array.cpp"template class Myarray <int, 50>; // 显式实例化
// main.cpp#include <iostream>#include "array.h";using namespace std;int main(void){ Myarray<int, 50> intArray; intArray.set_elem(0, 2); int firstElem = intArray.get_elem(0); cout << firstElem << endl;}
- 模板的声明和实现
- 【问题解决】模板的声明和实现分别放置
- C++中模板类的声明和实现分离问题
- 将模板类声明和实现分开
- 【c++模板】模拟实现有模板的双向链表(List)(声明和定义分离)
- C++的模板的声明和定义
- 类模板的声明和定义
- 函数模板的声明和使用
- 模板的声明和定义编译问题
- 你所不知道的事儿--C++类模板的声明和实现不能分离
- 函数模板的声明和模板函数的生成
- 声明模板 和 特化模板
- 请将类模板的声明和实现都写在.h文件中
- 转贴:模板的声明和实现为何要放在头文件中?
- C++中模板的声明和实现应该放在同一个文件中
- 模板的声明和实现为何要放在头文件中?
- 模板的声明和实现为何要放在头文件中?
- 读《模板的声明和实现为何要放在头文件中?》有感
- 读写各种文件
- 漾七夕
- JDBC解决中文乱码问题
- linux下的sqlite3的编译安装和使用 -----转载
- Dom4J创建XML
- 模板的声明和实现
- 我原来如此
- 【js特效】着陆页图片轮换效果
- 我的win32 FTP 类。。。
- HTML4 与 HTML5 的区别
- 2011-01-16 21:13 JQuery实现页面随滚动条滚动而动态加载内容的效果
- semi-join,,anti-join;
- static关键字总结
- 若爱 就如桃花般地去爱