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

专门做玉的网站深圳专业seo外包

专门做玉的网站,深圳专业seo外包,nba资讯,视频网站开发防止盗链类模板基础 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.zhongyajixie.com/news/22914.html

相关文章:

  • 网站建设行业赚钱么哪个浏览器看黄页最快夸克浏览器
  • 平湖建设局网站成都优化官网公司
  • 学校门户网站作用余姚关键词优化公司
  • java网站开发需要什么软件网站建设费用都选网络
  • 如何获得个人免费网站空间会计培训班多少钱
  • 移动网站开发百度推广登录页面
  • WordPress邮箱验证登录专业网站优化
  • 有没有专门做根雕的网站沈阳专业seo关键词优化
  • 天台县建设规划局网站百度竞价怎么做效果好
  • 杭州软件网站建设竞价托管推广公司
  • 长春做网站搜索引擎营销方案例子
  • 自适应网站开发文字大小如何处理百度seo2022新算法更新
  • 深圳网站建设制作开发公司seo裤子的关键词首页排名有哪些
  • 外贸实用工具优化营商环境的金句
  • 怀化seo网站河南今日头条新闻
  • 经常使用( )对网页的布局进行控制灰色seo关键词排名
  • 潍坊网站建设服务新手怎么做电商运营
  • 外贸企业网站制作公司山东企业网站建设
  • 企业网站设计概念河南网站网络营销推广
  • 网站设计的留言怎么做百度seo推广计划类型包括
  • 做英文网站多钱电子商务seo是什么意思
  • 电子商务网站建设系统功能舆情分析报告案例
  • 嘉兴公司做网站网络培训心得体会5篇
  • 启东市住房建设局网站域名查询ip138
  • 北京网站模仿百度seo排名优化公司哪家强
  • wordpress主题windowsseo搜索排名优化公司
  • 导购网站如何做免费推广龙华网站建设
  • 织梦cms发布侵权网站清单seo服务外包价格
  • 做网站用的软件是什么了类似互推商盟的推广平台
  • 专业微网站建设公司首选公司短视频代运营公司