当前位置: 首页 > news >正文

外链网站推荐百度搜索推广产品

外链网站推荐,百度搜索推广产品,凡科网站建设教程,做手机网站模板是泛型编程的基础#xff0c;即与类型无关的逻辑代码。 利用模板机制可以显著减少冗余信息#xff0c;能大幅度地节约程序代码#xff0c;进一步提高面向对象程序的可重用性和可维护性。 模板是实现代码重用机制的一种工具#xff0c;它可以实现类型参数化#xff1b;…模板是泛型编程的基础即与类型无关的逻辑代码。 利用模板机制可以显著减少冗余信息能大幅度地节约程序代码进一步提高面向对象程序的可重用性和可维护性。 模板是实现代码重用机制的一种工具它可以实现类型参数化 模板分为函数模板和类模板。 为了使用函数名相同参数不同返回值可同可不同的函数时我们起初用了重载的方式。 #includeiostream using namespace std;int add(int a,int b) {return ab; }double add(double a,double b) {return ab; }int main() {coutret1add(1,2)endl;coutret2add(2.3,3.0)endl;getchar();return 0; }但是运用重载的方式写起来比较不方便尤其是重载的函数较多时为了解决这类问题我们用函数模板来实现这种功能。 #includeiostream using namespace std; template class T T add(const T a,const T b) {couttype:typeid(a).name()endl;   //显示类型return ab; }int main() {coutret1add(1,2)endl;//还可以显示实例化显示指定T为int即addint(1,2)coutret2add(2.3,3.0)endl;   //adddouble(2.3,3.0)getchar();return 0; }以上函数中函数参数类型都是相同的当我们遇到形如add(1,2.3);一个参数为int一个参数为double型此时我们可以这样定义 template class T1,class T2 T add(const T1 a,const T2 b) {return ab; } 当然肯定有人会想模板函数可以构成重载吗    答案是肯定的。 #includeiostream using namespace std;int add(int a,int b) {return ab; }double add(double a,double b) {return ab; } template class T T add(const T a,const T b) {couttype:typeid(a).name()endl; return ab; }int main() {coutret1add(1,2)endl;coutret2add(2.3,3.0)endl;getchar();return 0; } 当模板构成重载调用add的函数时它会先调用非模板类的函数性能比较高而模板函数内部还得调用有推演过程判断它是什么类型效率上会有所降低。2.模板类 对于普通函数来说,我们拿typedef重定义一个类型当需要改的时候需要将int改掉就可以了 typedef int DataType;class SEQLIST { private:DataType *data; }; 而我们为了适应更多的类型于是引入了模板类我们这样定义体现了其高度复用的优势 templateclass T class SeqList { private:T* data; }; 写一个模板类实现SeqList的动态顺序表吧 #includeiostream using namespace std;template class T class SeqList { public:SeqList():_data(NULL),_size(0),_capacity(0){}SeqList(const SeqListT s);SeqListT operator(const SeqListT s);~SeqList(){if(_data ! NULL){delete[] _data;}}void CheckCapacity();void PushBack(const T d);void PopBack();void PushFront(const T d);void PopFront();void Print(); private:T *_data;int _size;int _capacity; }; template class T SeqListT::SeqList(const SeqListT s) {_data  new T[s._size*sizeof(T)];int i  0;for(i  0;i  s._size; i){_data[i]  s._data[i];}_size  s._size;_capacity  s._capacity; } template class T SeqListT SeqListT::operator(const SeqListT s) {int i  0;if(this  s){return *this;}_size  s._size;_capacity  s._capacity;delete _data;_data  new T[_capacity];for(i  0; i  _size; i){_data[i]  s._data[i];}return *this; } template class T void SeqListT::CheckCapacity() {if(_size  _capacity){T* tmp  new T[_capacity*23];//memcpy(tmp,_data,_size*sizeof(T));int i  0;for(i  0; i  _size; i){tmp[i]  _data[i];}delete[] _data;_data  tmp;_capacity  _capacity*23;} } template class T void SeqListT::PushBack(const T d) {CheckCapacity();_data[_size]  d;_size; } template class T void SeqListT::PopBack() {CheckCapacity();_size--; }template class T void SeqListT::PushFront(const T d) {int i ;CheckCapacity(); for(i  _size; i  0; i--){_data[i]  _data[i-1];}_data[0]  d;_size; }template class T void SeqListT::PopFront() {int i;CheckCapacity();for(i  0; i  _size; i){_data[i]  _data[i1];}_size--; } template class T void SeqListT::Print() {int i  0;for(i  0; i  _size; i){cout_data[i] ;}coutendl; }int main() {SeqListint seq;SeqListint seq1;coutseq:endl;cout尾插1234endl;seq.PushBack(1);seq.PushBack(2);seq.PushBack(3);seq.PushBack(4);seq.Print();cout尾删endl;seq.PopBack();seq.Print();cout头删endl;seq.PopFront();seq.Print();coutseq2:endl;SeqListint seq2(seq);seq2.Print();cout头插567endl;seq.PushFront(5);seq.PushFront(6);seq.PushFront(7);seq.Print();seq1  seq;coutseq1:endl;seq1.Print();getchar();return 0; }模板就说到这里啦有好的建议还希望大家提出来欢迎来访哦。
http://www.yutouwan.com/news/260872/

相关文章:

  • 网站备案的网站名称做网站如何规避法律风险
  • 建设一个蛋糕网站的背景与目的作作网站
  • 关于建立网站的申请重庆快速网站推广
  • 学做网站看什么dw 怎么做钓鱼网站
  • 惠州建设工程交易网站手机网页版抖音入口
  • 高端响应式网站长春哪家做网站做的好
  • 太原百度网站建设一个门户网站多少钱
  • 淘宝做网站推广人电话想在百度做推广怎么做
  • 公司网站制作效果怎么样在上海找工作用哪个招聘网好
  • 陵水专业网站建设怎样查询二级建造师注册情况
  • ps做网站导航条phpcms 关闭网站
  • 中国建设网官方网站企业wordpress开发教程 pdf
  • 代码判断网站泰安网络推广公司平台
  • 湖州长兴建设局网站wordpress打赏按钮
  • 代做网站排名天元建设集团有限公司代码
  • php网站建设管理教材做婚介网站可行性报告
  • 天河营销型网站建设金乡网站建设多少钱
  • 网页制作与网站建设文档it前端是做网站的
  • 重庆网站建站系统哪家好有哪些网站是可以做免费推广的
  • 琼海做网站口碑自己做app的网站
  • 供需网站开发WordPress 4.9添加备案号
  • 做网站那个好wordpress百度经验
  • 福建有没有网站做一件代发ipv6改造 网站怎么做6
  • 企业建站系统官网网站建设使用哪种语言好
  • 自适应型网站建设哪家好wordpress rss修改
  • 六安网站建设优化公众号开发怎么做
  • 优秀的网站有哪些找网站建设公司哪家最好
  • 油画风网站简洁的企业博客html5手机网站模板源码下载
  • 建站网站盗用了别人的案例保洁公司用哪些网站做推广
  • 音乐网站是否可以做浅度链接付费推广网站