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

专门做玉的网站sem优化公司

专门做玉的网站,sem优化公司,wordpress迅雷下载,交互设计好的网站类模板基础 1.类模板的基本概念2.类模板的分文件编写3.类模板的嵌套 (未完待续...) 在往节内容中,我们详细介绍了函数模板,这节开始我们就来聊一聊类模板。C中,类的细节远比函数多,所以这个专题也会更复杂。…

类模板基础

  • 1.类模板的基本概念
  • 2.类模板的分文件编写
  • 3.类模板的嵌套 (未完待续...)

在往节内容中,我们详细介绍了函数模板,这节开始我们就来聊一聊类模板。C++中,类的细节远比函数多,所以这个专题也会更复杂。

1.类模板的基本概念

和函数模板一样,类也可以有处理不同类型变量的能力。定义一个类模板需要使用的语句与定义函数模板类似:

template <class T1, class T2>

再次强调,尽管typename关键字和class关键字都可以定义通用变量,但通常函数中的通用变量使用typename定义,类中则使用class定义。定义后的通用变量名可以出现在类中的任何位置,比如我们写一个简单的类:

template <class T1, class T2>
class AA
{
public:T1 m_a;T2 m_b;AA(){} // 不负责任的构造函数AA(T1 a, T2 b):m_a(a),m_b(b){} T1 get_a() // 打印并返回a的值{cout << m_a << endl;return m_a;}T2 get_b() // 打印并返回b的值{cout << m_b << endl;return m_b;}
};

定义一个类模板与定义函数模板类似,但调用方法有所不同。因为C++不能自动判定传参的类型,所以我们调用时必须指定T1和T2的具体类型:

int main()
{AA<int, double> a;a = { 20,3.3 };a.get_a();a.get_b();return 0;}// 输出为:20//        3.3

此外,我们还可以给通用类行指定默认类型,类似于python中的默认参数。将定义AA类通用参数的代码换成:

template <class T1, class T2=int>

这样在调用函类的话就可以这样写:

int main()
{AA<int> a(20,3.3);AA <int,double> b (20,3.3);a.get_a();a.get_b();b.get_a();b.get_b();return 0;
}
// 输出为:20
//		  3
//		  20
//	 	  3.3

从这个例子中也可以看出,这个默认值也是可以手动修改的。C++11以上标准的函数模板实际上也接受这种制定通用类型的默认值操作,但实际意义不大。
我们也可以用new关键字来创建模板类对象:

int main()
{AA<int,double> *a=new AA<int>(20,3.3);a->get_a();a->get_b();delete a;return 0;
}

需要注意,使用模板类的话类名就不是AA了,而是AA<int,double>。

2.类模板的分文件编写

与函数模板一样,类模板也是在用到的时候才会被创建成具体函数。如果需要将类的声明和定义分开,那么同函数模板一样,这个声明通用变量的语句也要跟着定义。如果想要份文件编写,类模板也要整体放倒头文件中:
在这里插入图片描述
这个例子中,我们有一个Student具体类和AA类模板,其中类模板的属性声明和定义是分开的,请大家仔细观察一下。
可能有小伙伴好奇这样的结果,其实原因不难理解,C++是分文件进行编译的,所以头文件和源文件乍看之下都没有错,编译器也是可以正常通过的。但是对于具体函数和具体类而言,放在源文件中的函数定义会在编译过程中被创建成具体内容与头文件形成连接。而模板不会,它只会在被调用到的时候才能生具体函数,因此编译的过程中模板函数和类模板的方法并不会与头文件形成有效的链接,所以调用也就会出错了。解决这个问题当然就是不让编译器去源文件中形成连接,而是在头文件中就放好需要的内容。

3.类模板的嵌套 (未完待续…)

在开始这部分的讲述之前,我们先看一下使用类模板实现的两种数据结构——数组和栈

http://www.wangmingla.cn/news/156066.html

相关文章:

  • 上海网站建设公司排行太原网站关键词推广
  • 罗湖网站设计多少钱武汉网站seo推广公司
  • 宝安做棋牌网站建设找哪家公司好企业网站设计与推广
  • 网页添加背景图片代码win7优化大师下载
  • 做品牌特价的网站有哪些网络营销策略都有哪些
  • 最简 wordpress主题seo优化推广流程
  • 网站侧边栏怎么做站内免费推广有哪些
  • 百度免费做网站网站免费网站免费
  • ppt里做网站效果国际新闻热点事件
  • 入境美国前做登记叫啥网站seo优化推广多少钱
  • 电子商务网站建设公司seo优化排名推广
  • 网站建设与规划前景近期新闻大事
  • 海南省做购房合同网站民生热点新闻
  • 网站模板后台怎么做优化排名 生客seo
  • wordpress 5.5客户端windows优化大师免费版
  • 京东网站建设的目的2023第二波疫情已经到来了吗
  • 制作一个app软件优化大师下载安装免费
  • 织梦做双语版网站网站流量指标有哪些
  • 西安东郊做网站人工智能培训机构哪个好
  • 网站开发及服务合同模板西安关键词seo
  • 湘潭做网站 联系磐石网络企业网站网页设计
  • 重庆建网站多少钱淘宝关键词优化工具
  • 域名空间网站建设seo 服务
  • 网站的费用可以做无形资产网站建站教程
  • 企业网站主页设计图简单的个人主页网站制作
  • 又拍网站怎么做的2024年新冠疫情最新消息今天
  • 京伦科技做的网站如何属于免费的网络营销方式
  • 国外做机器人的网站鸿科经纬教网店运营推广
  • 如何注册chn域名网站百度搜索关键词排名
  • 武汉建设信息网公告网站seo搜索引擎优化怎么做