C++模板的概念与定义语法
admin
2024-03-29 06:00:33
0

模板

程序 = 算法 + 数据结构

数据结构 : 能够存储任意类型

算 法 : 能够操作存储任意类型数据的数据结构

泛型编程 :将【任意类型】从程序设计中抽象出来

编写与类型无关的通用代码,是代码复用的一种手段,而模板则是泛型编程的基础。

泛型编程并没有减少实际的代码量,只是把重复的代码交给机器自动生产,减少开发人员重复的工作量,极大的提高工作效率。

优势:

  1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生
  2. 增强了代码的灵活性

劣势:

  1. 模板会导致代码膨胀问题,也会导致编译时间变长
  2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误
泛型编程
面向过程编程用【模板】实现函数过程
面向对象编程用【模板】实现类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f83rYJl1-1670571633063)(E:\Reborn\7.C++\泛型编程\png\1.png)]

template 等价于 template


typename

"typename"是一个C++程序设计语言中的关键字。当用于泛型编程时是另一术语"class"的同义词。这个关键字用于指出模板声明(或定义)中的非独立名称(dependent names)是类型名,而非变量名。

非独立名称就是有依赖关系的名称(个人理解)

typename关键字被引入的理念

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

那class使用就够了,为什么又引入了新的关键词 typename ,关于这个问题,”Stan Lippman“ 曾在其博客中表示,最早 Stroustrup 使用 class 来声明模板参数列表中的类型是为了避免增加不必要的关键字;后来委员会认为这样混用可能造成概念上的混淆才加上了 typename 关键字。

作用

  • 用于在模板参数列表中定义抽象出的数据类型

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

template   // 作用一
void func(T p) {typename T::type it();   // 作用二
}// 同理 classtemplate
void func(T p) {class T::type it();
}

相关内容

热门资讯

长鑫科技下周一上市,发行价为8... 来源:@财联社APP微博 财联社7月23日讯,今日晚间,长鑫科技今日发布公告称,公司股票将于2026...
数字人民币开启从“可用”到“好... 证券时报记者 李颖超 当钱包开立规模持续扩容、试点版图不断铺开之后,数字人民币开始尝试切换发展逻辑。...
收评:超4200只个股上涨!电... 每经编辑:彭水萍 7月23日,A股全天走出缩量修复行情,三大指数小幅收红,盘面黄白线分化明显,中小盘...
商务部:将加快修订出台关于外国... 【大河财立方消息】7月23日,国务院新闻办公室举行新闻发布会,介绍2026年上半年商务工作及运行情况...
「AI新世代」智谱算力出鞘:1... 本报(chinatimes.net.cn)记者石飞月 北京报道 这段时间,智谱的股价经历了一番大起大...
刚刚,封死涨停!16.8亿抢筹... 调整已久的碳酸锂火了! 7月23日,锂矿概念持续走强,*ST威领、川能动力、盛新锂能、永杉锂业、国城...
原创 家... 家庭存款高于多少,才算是国内富裕家庭?社会各界看法不一。有人觉得在国内存款超过1000万,才算是富裕...
事关外贸、消费、新能源等领域 ... 商务部今天发布2026年上半年商务工作及运行情况。 商务部副部长鄢东介绍,上半年商务发展总体情况,...
专访美联储前高级经济学家胡捷 每经记者|周逸斐 每经编辑|廖 丹 法国经济预期增长从0.9%下调为0.6%;德国从0.8%下调为0...
90后接盘清北顶流,仅当3个月... *此图由AI生成 作者| 史大郎&猫哥 来源| 是史大郎&大猫财经Pro 今天讲一个非常生猛的资本游...
罕见反超,GDP十强省份又变了 各省份经济半年报陆续公布,备受关注的十强卡位战正式迎来变局。 今年上半年,安徽以27370亿元GDP...
ETF热门榜:中证短融相关ET... 2026年7月22日,非货币类ETF合计成交5510.77亿元,其中有103只ETF成交额破10亿元...
中国银行 :完成发行300亿元... 中国银行发布公告,公司于2026年7月20日在全国银行间债券市场发行减记型无固定期限资本债券,并于2...
中国真的是五省三市养活全国吗? 近几年,网上流传了一个说法,叫“五省三市养全国”。 简单来说,就是2022年,全国仅广东、江苏、浙江...
摩通:华尔街银行业绩强劲提振欧... 观点网讯:7月22日,华尔街大型银行第二季度业绩表现强劲,提振了市场对欧洲投资银行即将开启的财报季的...
广州拟推动房地产纾困和发展 引... 观点网讯:7月22日,“十五五”时期,广州拟切实推动房地产纾困和发展,引导房地产市场企业转型升级。 ...
AI投入成“无底洞”?谷歌资本... 隔夜美股三大指数集体收低,道琼斯工业指数下跌0.01%报52218.58点,标普500指数跌0.14...
新太空经济从“起势”迈向“成势... 当前,全球正处于新一轮科技革命和产业变革加速演进的关键节点,人工智能、合成生物学、固态电池、高端算力...
金价四连涨,水贝又挤满人 每经记者:赵景致 每经编辑:何小桃,廖丹 记者|赵景致 编辑|何小桃 廖丹杜恒峰校对|金冥羽 金价在...
专访微亿智造董事长张志琦:在“... 本报(chinatimes.net.cn)记者石飞月 上海报道 在刚刚过去的2026世界人工智能大会...