C++ 模板->模板函数
来源:互联网 发布:英雄杀mac 编辑:程序博客网 时间:2024/04/18 03:15
类模板:
(1)对模板参数没有限制
(2)避免代码的重复
(3)注意重载的准确的匹配
(4)模板的组合技术(下一次用STL分析)
//#include "stdafx.h"//#include<iostreamstd::>#include "stdafx.h"#include <iostream>#include <string>#include <vector>using namespace std;vector<int> v;template <typename T>//加法函数模板T Add(T x,T y)template <typename T>//在类模板定义之前,都需要加上模板声明class BinaryOperation//二目运算类{private: T x; T y;char op;void add() { std::cout<<x<<op<<y<<"="<<x+y<<std::endl; }void sub() { std::cout<<x<<op<<y<<"="<<x-y<<std::endl; }void mul();void div(); public: BinaryOperation(T x,T y):x(x),y(y) { }void determineOp(char op);};//在类外定义成员函数://在成员函数定义之前进行模板声明,//且在成员函数名之前加上"类名<类型参数>::"template <typename T>void BinaryOperation <typename T>::mul(){ std::cout<<x<<op<<y<<"="<<x*y<<std::endl;}template <typename T>void BinaryOperation <typename T>::div(){ std::cout<<x<<op<<y<<"="<<x/y<<std::endl;}template <typename T>void BinaryOperation <typename T>::determineOp(char op){this->op=op;switch(op) {case'+': add();break;case'-': sub();break;case'*': mul();break;case'/': div();break;default:break; }}int main(){ BinaryOperation<double> op(12.5,14.6); op.determineOp('+'); op.determineOp('-'); op.determineOp('*'); op.determineOp('/'); system("pause"); return 0;}{return x+y;}int main(){int x=10,y=10; std::cout<<Add(x,y)<<std::endl;//相当于调用函数int Add(int,int)double x1=10.10,y1=10.10; std::cout<<Add(x1,y1)<<std::endl;//相当于调用函数double Add(double,double)long x2=9999,y2=9999; std::cout<<Add(x2,y2)<<std::endl;//相当于调用函数long Add(long,long)return 0;}
0 0
- 【c/c++】函数模板和模板函数
- C/C++:函数模板与类模板
- [C/C++]模板函数与模板类
- C/C++ 函数模板
- c++:函数模板
- 【C++】函数模板
- 【c++】函数模板
- C语言函数模板
- C++:函数模板
- 【C++】模板函数总结!!!
- 学习C++模板---模板函数
- Linux C/C++ 模板:函数模板
- C++,template,类模板和函数模板
- C++:函数模板、类模板及其特化
- C++---函数模板与类模板
- C++_函数模板基础知识
- C语言实现函数模板
- C++_函数模板基础知识
- display:table-cell总结
- 支付接口示例代码
- WPF URI总结概览
- MyEclipse调试问题(转)
- Paste与Solder层的意思
- C++ 模板->模板函数
- 线性代数(五十二) : 对角化与惯性律
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- sudisudis
- Spark RDD Transformation 详解---Spark学习笔记7
- 根据节点读取assets下xml文件内容
- 不插SIM卡,不能拨打紧急电话
- 获取系统时间
- OpenCV笔记之一:将RGB视频转换为灰度输出并在窗口显示