摘要:函数模板的实例化,类模板的实例化,类模板和函数模板的实例化的比较html
高飞狗:函数 |
Hi,黛丝!很久不见,最近可好?学习 |
|||||||||||||||||||||||||||||||||||
黛丝:spa |
你就别提了,烦得要死!指针 |
|||||||||||||||||||||||||||||||||||
高飞狗:htm |
有什么烦心事,跟我说说,看我能不帮你排忧解难?对象 |
|||||||||||||||||||||||||||||||||||
黛丝:blog |
历经千辛万苦,1个月内学习强国已经突破1000点大关。生命周期 |
|||||||||||||||||||||||||||||||||||
高飞狗:ci |
进步神速呀! |
|||||||||||||||||||||||||||||||||||
黛丝: |
跟本身比,进步神速;但是跟别人比,落后得更神速!你说奇怪不奇怪? |
|||||||||||||||||||||||||||||||||||
高飞狗: |
真够奇真够怪的! |
|||||||||||||||||||||||||||||||||||
黛丝: |
高飞,你不会没事闲得无聊专程来听我诉苦的吧? 我知道你无事不登八宝殿,有什么事你就直说。 |
|||||||||||||||||||||||||||||||||||
高飞狗: |
仍是黛姐姐您最善解人意哪! 我最近学习也变得很是刻苦,正在研究函数模板和类模板,什么显示explicit实例化,什么隐式implicit实例化,越学越晕,您能给讲解讲解吗? |
|||||||||||||||||||||||||||||||||||
黛丝: |
你何时也变得勤奋好学起来了? 看你态度这么真诚,我就把我知道的都抖落给你吧。 |
|||||||||||||||||||||||||||||||||||
黛丝: |
先说函数模板的实例化。 函数模板实例化的方法有两种:隐式实例化和显式(明确)实例化。
隐式实例化:应用程序调用了一个既未声明又未定义的函数。编译器就到函数模板库中查找同名函数模板,根据被调用函数的入口参数和返回值,肯定相匹配的函数模板,并生成一个函数实例。隐式的意思就是应用程序未明确声明或定义函数实例。
显式(明确)实例化:应用程序明确声明并定义了一个函数模板的实例,以下表所示。
函数实例的定义和声明
编译器见到函数实例的定义,就产生一个函数实例。 编译器见到函数实例的声明,就知道了调用这个函数实例的方式,也知道这个函数已在其它地方被定义,没必要产生再一个函数实例。
再来讲类模板的实例化。 类模板只有显式(明确)实例化,没法隐式实例化。比较简单,再也不累述。 把类模板和函数模板的实例化作个对比,以下图所示:
另外,要重点提醒的是,尤为是在MCU上开发C++应用的朋友要注意:若类的对象是局部对象或全局对象,其生命周期贯穿整个应用程序,且其构造函数在main()函数以前被调用执行,因此这些对象的构造函数不可作太多工做。 |
|||||||||||||||||||||||||||||||||||
高飞: |
亲爱的,你讲得太清楚了,读书效率过低下,读你以分钟胜读十年书! |
|||||||||||||||||||||||||||||||||||
黛丝: |
好你个油嘴滑舌!你说要给我排忧解难的,折腾半天,谁给谁排除万难了? |
原文出处:https://www.cnblogs.com/micemik/p/10692103.html