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

网站的布局怎么做企业网页建设公司运营团队

网站的布局怎么做,企业网页建设公司运营团队,广西建工集团冶金建设公司的网站,手机微信客户端网站建设目录 一. 泛型编程 二. 函数模板 2.1 什么是函数模板 2.2 函数模板的实例化 2.2.1 函数模板的隐式实例化 2.2.1 函数模板的显示实例化 2.3 函数模板实例化的原理 2.4 模板函数调用实例化原则 三. 类模板 3.1 什么是类模板 3.2 类模板的实例化 一. 泛型编程 泛型编程…目录 一. 泛型编程 二. 函数模板 2.1 什么是函数模板 2.2 函数模板的实例化 2.2.1 函数模板的隐式实例化 2.2.1 函数模板的显示实例化 2.3 函数模板实例化的原理 2.4 模板函数调用实例化原则 三. 类模板 3.1 什么是类模板 3.2 类模板的实例化 一. 泛型编程 泛型编程就是编写与类型无关的通用代码使同一段代码可以适用于所有类型的数据。如编写一个Swap函数使其可以实现对所有内置类型数据的交换、编写一个链表类List使其能够适用于存储所有数据类型的链表。 之前如果我们想要编写支持所有数据类型的Swap函数就需要编写多个重载函数如Swap(int x, int y)、Swap(double x, double y)。但是函数重载会造成大量的代码冗余而良好的代码对冗余是非常忌讳的。为了避免代码冗余实现编写一份代码就适用于所有类型的数据C引入了模板的概念而模板就是实现泛型编程的基础。 C中的模板分为函数模板和类模板由于C语言不支持模板所有C语言也不支持泛型编程。 图1.1  C模板分类二. 函数模板 2.1 什么是函数模板 函数模板本质上来说就是一个函数家族在调用函数时根据函数模板实例化出具体的函数函数模板与参数类型无关。 定义函数模板的格式 template typename T1, typename T2, ... , typename T3 函数返回值  函数名(参数列表) { }。 typename是函数模板关键字可以使用class来替代但不能使用struct来替代。 演示代码2.1以Swap函数为例编写了一个Swap函数的函数模板这个Swap函数可以对任何内置类型数据进行交换操作。 演示代码2.1Swap函数模板 templatetypename T void Swap(T x, T y) {T temp x;x y;y temp; } 2.2 函数模板的实例化 根据实例化函数模板时是否指定参数类型可分为隐式实例化和显示实例化。 2.2.1 函数模板的隐式实例化 隐式实例化就是在调用函数时不指定函数参数和返回值的类型通过传入的数据让编译器自己去推断类型。 演示代码2.2以Swap函数为例分别向函数中传入了两个int型数据和两个double型数据进行交换输出交换后的结果。根据输出结果可见Swap函数模板成功对int型数据和double型数据进行了交换证实了函数模板的通用性。 演示代码2.2 int main() {int a1 10, a2 20;double d1 10.11, d2 20.22;Swap(a1, a2);cout a1 a1 , a2 a2 endl;Swap(d1, d2);cout d1 d1 , d2 d2 endl;return 0; } 图2.2 演示代码2.2的运行结果2.2.1 函数模板的显示实例化 假设我们传入一个int型参数和一个double型参数试图实例化函数模板SwapSwap(a1, d2)。当编译器看到a1时会将T推断为int型数据当编译器看到d2时会将T推断为double型数据。但是由于函数的模板参数列表中只有一个T而一个T不能表示两种类型的数据因此这里会编译失败。 如果我们确实希望通过演示代码2.1中定义的Swap函数模板实现int型数据和double型数据之间的数据交换有以下两种方式可以实现 强制类型转换Swap(a1, (int)d1) 显示实例化Swapint(a1, d1) 函数模板的显示实例化就是通过在函数调用时在函数名后面添加模板参数类型显示地指定模板参数类型从而省去了编译器自动推断模板参数类型的过程。 演示代码2.3定义了加法Add的函数模板通过显示指定模板参数的类型为int和double进行调用分别完成了整形数据和浮点型数据的加法操作。 演示代码2.3 templatetypename T T Add(T x, T y) {return x y; }int main() {int a 10;double d 20.2;cout Addint(a, d) endl;cout Adddouble(a, d) endl;return 0; } 2.3 函数模板实例化的原理 函数模板其实并不是一个具体的函数它相当于浇注制造中用到的模具可用于生成具体的函数但其本身不是函数。当要通过函数模板调用函数时我们会传入模板参数编译器则会根据模板参数类型利用函数模板实例化出具体的函数。 如Swap函数我们先后用它来交换char类型、int型和double型数据编译器就会生成3个重载函数void Swap(char x, char y)、void Swap(int x, int y)和void Swap(double x, double y)这三个函数存储在内存中不同的位置。  图2.3 函数模板实例化的原理2.4 模板函数调用实例化原则 模板函数可以与非模板函数同名。如果非模板函数能够很好地匹配调用参数的类型那么编译器会优先调用非模板函数而不是根据函数模板实例化出函数来调用。模板函数在传参时不允许存在隐式类型转换但非模板函数允许隐式类型转换。 三. 类模板 3.1 什么是类模板 类模板与函数模板类似通过模板参数列表来使类中的成员函数参数和成员变量可以为任何想要的数据类型。 类模板的定义格式 templatetypename T1, typename T2, ... , typename n) class 类名 {         成员函数列表 ......         成员变量列表 ...... } 演示代码3.1以栈类为例定义了一个可以实例化为存储任何数据类型的栈。其中包括4个显示定义的成员函数构造、析构、压栈和打印包括三个成员变量指向存储数据内存区域的指针_a、栈顶下标_top、栈容量_capacity。 该栈模板类引入T作为模板参数其中压栈函数的参数和成员变量_a均涉及参数T在实例化时T可以被解析为多种类型如int、double、char等。 抛开类模板的实际功能来讲T还可以实例化为自定义类型如果T被实例化为自定义类型那么这创建模板类对象时会去调用T的构造函数。 演示代码3.1 template class T class Stack //栈类 { public:Stack(int capacity 10);~Stack();void Push(T x);void Print();private:T* _a;int _top;int _capacity; };//类模板成员函数定义和声明分离 //函数返回值 类名模板::函数名(参数列表) template class T StackT::Stack(int capacity): _capacity(capacity), _top(0) {_a new T[capacity]; }template class T StackT::~Stack() {delete[] _a;_top _capacity 0; }template class T void StackT::Push(T x) {_a[_top] x; }template class T void StackT::Print() {int i 0;for (i 0; i _top; i){std::cout _a[i] ;}std::cout std::endl; } 3.2 类模板的实例化 与函数模板既可以显示实例化也可以隐式实例化不同类模板只能显示实例化。即告知编译器模板参数的类型。 类模板实例化格式类名模板参数类型 对象名 演示代码3.2展示了对于栈类模板的实例化分别实例化处一个int栈对象st1和double栈对象st2对两个栈进行压栈操作并打印栈中数据证实了该栈类模板能够适用于各种数据类型的栈。 演示代码3.2 int main() {//函数模板可以显示调用也可以隐式调用//但类模板只能显示调用Stackint st1;st1.Push(1);st1.Push(2);st1.Push(3);st1.Print();Stackdouble st2;st2.Push(1.1);st2.Push(2.2);st2.Push(3.3);st2.Print();return 0; } 图3.2 演示代码3.2的运行结果
http://www.w-s-a.com/news/490817/

相关文章:

  • 手机网站制作报价表做网站公司做网站公司
  • 湖州网站设计吉林网站建设哪家好
  • 做存储各种环境信息的网站使用tag的网站
  • 阿里云用ip做网站网站开发员属于
  • 外链网盘下载南宁seo推广优化
  • 网站的推广方案有哪些此网站可能有
  • wordpress更改链接后网站打不开一键生成个人网站
  • 网站建设后台有哪些东西前端开发培训一般多少钱
  • 高端建设网站公司网站开发 源码
  • 企业网站的劣势园林景观设计公司简介范文
  • 网站建设程序招聘东营建设信息网登录
  • o2o是什么意思通俗讲seo与网站优化 pdf
  • 外贸网站外包一般建设一个网站多少钱
  • 抄袭别人网站的前端代码合法吗网络促销策略
  • 用wordpress制作网站做资源网站
  • wordpress 发布网站南宁网站建设网站
  • 职业生涯规划大赛心得贵阳哪家网站做优化排名最好
  • wordpress 图片懒加载北京网站优化和推广
  • 深圳网站建设工作一个dede管理两个网站
  • 被禁止访问网站怎么办中国建筑网官网查询系统
  • 网站管理运营建设网贷网站
  • 深圳市龙岗区住房和建设局网站怎么给网站做404界面
  • 设计类网站网站系统 建设和软件岗位职责
  • 网站后台打开慢站长之家网址ip查询
  • 图书馆网站设计方案家具设计作品
  • 马鞍山做网站公司排名徐州网站外包
  • 十堰微网站建设电话宣传型网站建设
  • 电脑制作网站教程网络公司除了建网站
  • 360制作网站搜网站网
  • 门户网站标题居中加大网站底部的制作