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

php做网站毕设答辩问什么网站开发策划

php做网站毕设答辩问什么,网站开发策划,亚马逊购物官网入口,四川建设部网站官网目录​​​​​​​ 一.泛型编程 二.模板 函数模板 类模板 一.泛型编程 在C中,支持函数重载,如果我们通过函数重载实现通用的交换函数,写法如下: void Swap(int& left, int& right) {int temp left;left right;ri…

目录​​​​​​​

一.泛型编程

二.模板

函数模板

类模板


一.泛型编程

在C++中,支持函数重载,如果我们通过函数重载实现通用的交换函数,写法如下:

void Swap(int& left, int& right)
{int temp = left;left = right;right = temp;
}
void Swap(double& left, double& right)
{double temp = left;left = right;right = temp;
}
void Swap(char& left, char& right)
{char temp = left;left = right;right = temp;
}
......

非常冗余,于是我们引入泛型编程的概念:通过编写与类型无关的代码,实现代码的复用。而在C++中,模板就是泛型编程的基础。

二.模板

模板有两种:函数模板和类模板

函数模板

语法:

template<typename T1, typename T2, ..., typename T3>

返回值类型 函数名(参数列表){}

typename是用来定义函数模板的关键字,也可以使用class关键字。

样例:

//交换函数模板
template<typename T>
void Swap(const T& x, const T& y)
{T tmp = x;x = y;y = tmp;
}int main()
{int i1 = 1, i2 = 2;double d1 = 1.1, d2 = 2.2;char c1 = 'a', c2 = 'b';//隐式实例化Swap(i1, i2);//隐式(推导)生成void Swap(const int& x, const int& y);Swap(d1, d2);//隐式(推导)生成void Swap(const double& x, const double& y);Swap(c1, c2);//隐式(推导)生成void Swap(const char& x, const char& y);//显式实例化float f1 = 1.1, f2 = 2.2;Swap<float>(f1, f2);//显式(手动)生成void Swap(const float& x, const float& y);return 0;
}

模板函数是一个蓝图,非具体函数,而是编译过程中,编译器根据蓝图生成了具体类型的函数。

模板参数实例化的两种方式:

隐式实例化:编译器根据实参推演模板参数的实际类型

显式实例化:函数名<>,在<>中指定模板参数的实际类型

 如果一个非模板函数和同名函数模板同时存在,且调用时实参和非模板函数完全匹配,编译器会优先调用这个非模板函数。

类模板

语法:

template<typename T1, typename T2, ... , typename Tn>

class 类模板名

{

        //成员定义

};

实现一个栈的类模板:

//Stack
template<typename T>
class Stack
{
public://构造函数Stack(int n = 4):_arr(new T[n]),_top(0),_capacity(n){}//析构函数~Stack(){delete[] _arr;_arr = nullptr;_top = _capacity = 0;}void Push(const T& x){T* tmp = new T[_capacity * 2];memcpy(tmp, _arr, sizeof(T) * _top);delete[] _arr;_arr = tmp;_capacity *= 2;_arr[_top++] = x;}void Pop(){_top--;}//...
private:T* _arr;int _top;int _capacity;
};int main()
{//Stack<int>和Stack<double>是类型,Stack仅仅是类名Stack<int> st_i;//存储int类型数据的栈Stack<double> st_d;//存储double类型数据的栈return 0;
}

 上述代码中,Stack<int>和Stack<double>是显式实例化出的两个存储不同数据类型的栈,它们属于不同的类型。

类模板实例化需要在类模板名字后跟<>,然后将实例化的类型放在<>中即可,类模板名字不是真正的类,而实例化的结果才是真正的类。

今天的内容就到这,感谢大家的支持!

http://www.yayakq.cn/news/352505/

相关文章:

  • 漳州微网站建设公司网站建设项目规划书案例分析
  • 成都市 网站建设国外化工网站模板
  • 机械网站建设哪家好wordpress 图片弹出
  • 中国建设银行官方网站纪念币预约成都高标建设有限公司官方网站
  • 外贸的网站有哪些电子商务网站建设与管理期末试题
  • 网站建设需要域名还有什么青浦集团网站建设
  • 公司网页网站建设 pptcrack wordpress
  • 松江区网站建设公司网站模板安装好后
  • 网站排名顾问深圳网站建设找智恒网络
  • 深圳招聘网站前十排名3d建模师可以自学吗
  • 风机网站怎么做WordPress音乐悬浮插件
  • lamp网站开发黄金组合网站续费有什么作用
  • 自适应主题 wordpress网站优化自己做该怎么做
  • 专业做汽车的网站wordpress托管是什么
  • 沈阳市城乡建设局网站首页大型网站建设公司有哪些
  • 谢岗镇网站建设公司零基础做网站教程
  • 即墨哪里有做网站的发帖效果好的网站
  • 可信赖的南昌网站建设上海知名的seo推广咨询
  • 石龙镇住房规划建设局网站wordpress一个页面如何连接到首页
  • 网站的三种基本类型重庆森林讲的什么内容
  • 家政网站开发wordpress禁用ip
  • 网站建设收获如何建网站卖东西
  • 惠州品牌网站建设价格盘锦门户网站制作
  • 做视频的素材什么网站好河南省住建厅官网
  • 广东深广东深圳网站建设服务wordpress获取文章的标签
  • 360免费建站app东山网站建设
  • 如何查看网站推广做的好织梦做的网站织梦修改网页
  • 做电商网站需要注册什么公司名称爱企业查询公司
  • 重庆网站如何做推广中瑞网络网站建设流程
  • 网站建设需怎么做做淘口令网站