c++第十六章-(函数模板与类模板)
2014-07-16 17:25
246 查看
函数模板的作用:解决需要重载多种不同类型参数的函数的问题,但又不想重载的时候。
好处,泛型编程,解决了多处重载的问题。
函数模板Demo:
控制台打印结果:
类模板Demo,实现栈式结构,first in last out,只有1个口。
控制台输出结果:
好处,泛型编程,解决了多处重载的问题。
函数模板Demo:
//声明函数模板类型T,T代表泛型,类似于OC中的id。函数模板的声明要实现放在一齐,分开的话会报错。class换成typename也是同一个意思。 template <class T> void swap(T &a,T&b) { T temp = a; a = b; b = temp; } int main(int argc, const char * argv[]) { int i1 = 100; int i2 = 200; std::cout << "交换前,i1 = " << i1 << " i2 = "<< i2 << std::endl; swap<int>(i1,i2);//调用方式一 std::cout << "交换前,i1 = " << i1 << " i2 = "<< i2 << std::endl; std::string s1 = "小甲鱼"; std::string s2 = "小鱿鱼"; std::cout << "交换前,s1 = " << s1 << ",i2 = " << s2 << std::endl; swap(s1, s2);//调用方式二 std::cout << "交换前,s1 = " << s1 << ",i2 = " << s2 << std::endl; return 0; }
控制台打印结果:
交换前,i1 = 100 i2 = 200 交换前,i1 = 200 i2 = 100 交换前,s1 = 小甲鱼,i2 = 小鱿鱼 交换前,s1 = 小鱿鱼,i2 = 小甲鱼
类模板Demo,实现栈式结构,first in last out,只有1个口。
template <class T> class Stack { public: Stack(unsigned int size = 100); ~Stack(); void push(T value); T pop(); private: unsigned int size;//数组容器data的大小 unsigned int sp;//栈的当前位置 T *data;//存储入栈的数组 }; template <class T> Stack<T>::Stack(unsigned int size) { this -> size = size; data = new T[size];//初始化一个泛型数组 sp = 0; } template<class T> Stack<T>::~Stack<T>() { delete []data; } template<class T> void Stack<T>::push(T value) { data[sp++] = value; } template<class T> T Stack<T>::pop() { return data[--sp]; } int main() { Stack<int> intStack(100); intStack.push(1); intStack.push(2); intStack.push(3); std::cout << intStack.pop() << "\n"; std::cout << intStack.pop() << "\n"; std::cout << intStack.pop() << "\n"; }
控制台输出结果:
3 2 1
相关文章推荐
- C++中的模板(函数模板,类模板)
- C++ 学习之路(13):函数模板与类模板
- C++中的模板(函数模板,类模板)
- C++ 函数模板与类模板 20180310 学习
- C++ 函数模板和类模板(转)
- C++技术点积累(5)——泛型编程(函数模板、类模板)
- c++学习笔记 -- 函数模板与类模板的综合运用
- C/C++_log2000_函数模板与类模板笔记1
- C++ 函数模板与类模板
- c++学习(函数模板, 类模板)<2>
- C/C++ 指针数组与数组指针、函数指针与指针函数、模板函数与函数模板、类模板与模板类区别
- C++提高1 【泛型编程】函数模板 类模板
- C++模板剖析:函数模板、类模板解析
- C++ 函数模板和类模板简单总结一下
- C++ 函数模板 和 类模板的使用
- c++模板 (函数模板和类模板)
- C/C++_log2000_函数模板与类模板笔记2
- 【c++】模板函数、函数模板,模板类、类模板
- 模板函数,函数模板,模板类,类模板的区别
- C++ 函数模板和排序的函数模板——学习笔记