一个c++模板的例子(类型依赖)说明
2011-04-20 14:18
302 查看
代码如下:
这里说的是CCustomerList里的
typedef typename CustomerContainer::iterator CCIterator;
语句。
在这条语句中必须加上typename关键字,不然编译时会报错。
根据《effective STL》里的解释: CustomerContainer::iterator 是一个依赖形式类型参数T的一种类型,所以必须在它前面放上typename这个词。
#include <iostream> #include <list> template <typename T> class CCustomerList { public: void push(T item) { m_customer.push_back(item); } void show_item() { CCIterator it = m_customer.begin(); while(it != m_customer.end()) { std::cout<<(*it)<<std::endl; ++it; } } private: typedef std::list<T> CustomerContainer; typedef typename CustomerContainer::iterator CCIterator; CustomerContainer m_customer; }; int main(int argc, char *argv[]) { CCustomerList<int> c; for(int i=0; i<10; ++i) c.push(i); c.show_item(); return 0; }
这里说的是CCustomerList里的
typedef typename CustomerContainer::iterator CCIterator;
语句。
在这条语句中必须加上typename关键字,不然编译时会报错。
根据《effective STL》里的解释: CustomerContainer::iterator 是一个依赖形式类型参数T的一种类型,所以必须在它前面放上typename这个词。
相关文章推荐
- 一个简单的例子说明java中spring框架的依赖注入
- 将任意类型映射到一个唯一整数(C++模板实现TypeList)
- c++中一个关于模板的小例子
- C++库研究笔记——使用函数模板还是类模板?+ 一个类型重复问题的两种解决方法
- C++ 一个例子说明.c_str()函数
- C++ 函数指针 一个例子说明一下ing
- C++简单例子说明一个问题
- 一个简单的例子说明java中spring框架的依赖注入
- 一个例子说明java数据类型包括对象是赋值还是引用!!!
- 一个简单的例子说明java中spring框架的依赖注入
- C++:通过一个点的数据对象转换成字符串的例子来说明整数转化为字符串
- 关于模板编程的一个例子 来自深度探索c++对象模型
- c++ 模板的一个例子,实参演绎的时候,有个地方没看明白
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- 模板 traits的一个经典例子 , 解决 void func(T t)根据t的类型不同来做不同的实现
- 一个简单的例子说明Struts的工作流程
- #167 – Implementing a Dependency Property That Is A Collection(实现一个Collection类型的依赖属性)
- 【C++】复合类型之vector和array模板(二)
- [C++基础]049_用模板匹配实现编译期类型甄别
- 写出一个二叉树类,也就是C++中的模板类,后面加一个二叉树接口口,即c++中的类模板,最后再来一个二叉树结点类