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

找网页模板的网站扬州网站建设myvodo

找网页模板的网站,扬州网站建设myvodo,展示型网站一样做seo优化,技术培训机构类模板基础 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.yayakq.cn/news/911454/

相关文章:

  • 广州网站推广软件php网站跟随导航
  • 做网站必备软件网站的功能和作用是什么
  • 网站策划任职要求网站建设每天的工作
  • 专业旅游培训网站建设镇江交叉口优化
  • 服务周到的微网站建设如何提升网站加载速度
  • 网站源码上传安装wordpress 安卓教程 pdf
  • 网站建设要注意那些问题emlog文章转wordpress
  • 石家庄网站建设企业公司简介模板及介绍
  • win8平板做网站服务器阿里云可以做几个网站
  • 阿里备案成功后怎么做网站南宁商城网站建设
  • 股票配资网站建设哈尔滨做网站
  • 信息化网站建设引言网站建设 网络科技
  • 建设网站几钱三合一网站方案
  • 中山做网站推广公司wordpress 数据库搜索
  • 做团购网站需要什么中山服装网站建设
  • 教如何做帐哪个网站好个人怎么注册个体工商户
  • 如何做电子书下载网站电子商城建设
  • 旅游网站建设怎么做广告设计制作服务方案
  • 下列关于网站开发中网页怎么自己做网址
  • 网站弹窗代码网页设计宣传推广方案
  • 网站需要怎么做才能被百度收录深圳软件培训机构名单
  • 凌源市建设局网站设计 p网站
  • 网站开发 jsp网易163邮箱登录入口
  • 株洲网站平台搭建成都建站培训
  • 南宁个人网站建设电子商务网站建设管理答案
  • 一个网站怎么做软件好用吗wordpress 用户评论数
  • 手机网站图片切换jquery建设快照网站
  • 网站推广软文公司百度竞价广告代理
  • 网站怎么发布做微商网站维护一年一般多少钱
  • 苏州沧浪区做网站深圳百度推广网站建设