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

郑州市中原区建设局网站wordpress字体大小代码

郑州市中原区建设局网站,wordpress字体大小代码,企业域名如何申请,开一个网站建设公司模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,…

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。

模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。

每个容器都有一个单一的定义,比如 向量,我们可以定义许多不同类型的向量,比如 vector <int>vector <string>

您可以使用模板来定义函数和类,接下来让我们一起来看看如何使用。

C++ 中 typename 和 class 的区别

在 C++ Template 中很多地方都用到了 typename 与 class 这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?

相信学习 C++ 的人对 class 这个关键字都非常明白,class 用于定义类,在模板引入 c++ 后,最初定义模板的方法为:

template<class T>......

这里 class 关键字表明T是一个类型,后来为了避免 class 在这两个地方的使用可能给人带来混淆,所以引入了 typename 这个关键字,它的作用同 class 一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了:

template<typename
T>......

在模板定义语法中关键字 class 与 typename 的作用完全一样。

typename 难道仅仅在模板定义中起作用吗?其实不是这样,typename 另外一个作用为:使用嵌套依赖类型(nested depended name),如下所示:

class MyArray 
{ public:typedef int LengthType;
.....
}template<class T>
void MyMethod( T myarr ) 
{ typedef typename T::LengthType LengthType; LengthType length = myarr.GetLength; 
}

这个时候 typename 的作用就是告诉 c++ 编译器,typename 后面的字符串为一个类型名称,而不是成员函数或者成员变量,这个时候如果前面没有 typename,编译器没有任何办法知道 T::LengthType 是一个类型还是一个成员名称(静态数据成员或者静态函数),所以编译不能够通过。

函数模板可以重载,只要它们的形参表不同即可。例如,下面两个模板可以同时存在:

template<class T1, class T2>
void print(T1 arg1, T2 arg2)
{cout<<arg1<<" "<<arg2<<endl; 
}
template<class T>
void print(T arg1, T arg2)
{cout<< arg1<< " "<< arg2<< endl;
}

如果需要代码分离,即 template class 的声明、定义,以及 main 函数分属不同文件。例如:

src_dir
|____MyStack.h
|____MyStack.cpp
|____main.cpp

则 main.cpp 文件中需要同时包含 .h 文件和 .cpp 文件,不然会出现链接错误。

// main.cpp
#include "MyStack.h"
#include "MyStack.cpp"// 其他include
// main函数主体 

其实举个简单的例子反而更利于新手理解本质。

函数模板:

#include <iostream>
using namespace std;
template <typename T1>
void Swap(T1& a, T1& b)
{T1 t = a;a = b;b = t;
}
int main()
{int a = 2;int b = 3;cout <<"a = " << a << ";  b = " << b <<endl;Swap(a,b);cout <<"a = " << a << ";  b = " << b <<endl;float c = 0.02;float d = 0.03;cout <<"c = " << c << ";  d = " << d <<endl;Swap(c,d);cout <<"c = " << c << ";  d = " << d <<endl;return 0;
}

类模板:

#include <iostream>
using namespace std;
template <typename T>
class Op{
public:T peocess(T v){return v * v;}
};
int main()
{Op<int> opInt;Op<double> opDouble;cout << "5 * 5 = " << opInt.peocess(5) <<endl;cout << "0.5 * 0.5 = " << opDouble.peocess(0.5) <<endl;
}

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

相关文章:

  • 做汽配的外贸网站app开发工具手机版
  • 自己怎样用手机建网站贡井区建设局网站?
  • 六安网站设计公司wordpress th7
  • 企业网站对网络营销的意义牛商网官网
  • 网站建设合同图表版阿里云服务器的网站备案流程
  • 网站架构设计师工资水平wordpress html5 app
  • 做网站是干什么的百度站点管理
  • 网站聚合页一级做c爱片的网站
  • 泰安专业网站开发公司wordpress 多层边栏
  • 网站 相对路径做的网站没法用能否拒绝付工资
  • 企业网站打不开什么原因html什么意思
  • 网站添加google地图汽车网站建设预算
  • 企业网站设计需求文档沈阳市建网站
  • 领地免费网站程序汇编语言做网站
  • flask做网站工具昆明工程建设信息网站
  • 大型门户网站建设美丽揭阳seo网站管理
  • 开发商城网站开发模板网站的域名是什么
  • 贵州省建设银行网站如何开发自己的软件
  • 新竹网站凡客家具质量怎么样
  • 建设网站如何给页面命名免费的手机网站模板
  • 学校户网站建设方案鸿星尔克的网络营销方式
  • 网站 换图片可信网站认证图标
  • 网站管理强化阵地建设手机网站cms系统
  • 宁波江北区网站推广联系方式成crm网
  • 酒店网站的设计摘要视频链接生成器
  • 培训型网站建设重庆建设公司排名
  • 电子商务网站建设和推广论文苏宁易购官网商城
  • 官网建站模板库seo 论坛
  • 可信网站值得做吗wordpress广告插件汉化
  • 提供常州微信网站建设app开发公司的管理体系