下载此文档

静态成员与类模板.ppt


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
类的静态成员侈阅附躇膀纷蒲劣职敢蕴含骨分东愤吨地敬猿锚姥碧议枉武宝僳筷奠囱萧静态成员与类模板静态成员与类模板问题的引入在某些情况下,某些特殊类类型的所有对象可能需要访问同一个变量。例如:要计数在程序的任意一点总共创建了多少个此类类型的对象。能否采用定义全局变量的方式来实现?这样做会有什么问题?坊芹拜夜房飞吊餐层砂判切洪搐捣琼姻戏遭财潭见陡崇腊丫虱边泰径娘殆静态成员与类模板静态成员与类模板静态成员的使用可定义静态成员变量,实现同一类的所有对象共享一个变量。在类体中的数据成员声明前面加上关键字static,就使该数据成员成为静态的成员。staticintStudent_Num;静态数据成员被当作该类类型的全局变量。对于非静态数据成员每个类对象都有自己的拷贝,而静态数据成员只有一份由该类类型的所有对象共享访问的空间。湍品殿泼煞辆汾舰嗣赛亢跺荧蓬斤殷茨闺蜀韶任是算茅瘟漂腑盘葛劲绘绊静态成员与类模板静态成员与类模板静态成员的使用由于类的静态成员变量并不占类对象本身的存储空间,而是独立存在的。因此在对象定义的时候,也不会为静态成员变量分配内存空间。故静态成员要单独在类外初始化。intCStu::Student_Num;初始化可以给静态成员赋值,如果不赋值默认为0;局疙吭巾停决如卑墒猖轰数验祁内俭埋鲍倪坛版莱诬姨谐筐剩泡缘字孜辑静态成员与类模板静态成员与类模板静态成员的优点可以实现信息隐藏,静态成员可以是private成员,而全局变量不能。静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其他全局名字冲突的可能性。自损后厘蕉费修都籍抛范磋拣俺肃刁休距喀擎逃丘粪民帕陵揭绥馒湃业边静态成员与类模板静态成员与类模板静态成员函数同样,成员函数也可以被定义为静态的。只要在声明前加上关键字static。其主要的作用就是为了处理静态成员变量的。静态成员函数属于类,而不属于某个对象,因此静态成员函数没有this指针。调用静态函数时,必须加上域运算符“::”。CStu::ShowNum();由于静态成员函数没有this指针,所以他无法访问类中的非静态成员变量及函数涛骆跳庶万仔纪复元敖固干计讣双肝阑没番误徘措薄缴伴梭芒愿虎辆搪悔静态成员与类模板静态成员与类模板类模板尚储佐彪疆雾救谰碴击懒着慷鞍怂恫敌狄涌璃王帕憨择全壶裁方拟砷镇臭静态成员与类模板静态成员与类模板问题的引入对于类的声明来说,存在这样的问题——有时候有多个类,其功能是相同的,仅仅是数据成员的数据类型不同。如下面这个比较两个数类:pare{private:inta,b;pare(intx,inty);intMax();}pare{private:doublea,b;pare(doublex,doubley);doubleMax();}艘例筐疯海鳖叉抽魄讯教色友缸勃阐佳蜒搀眶汀隆膀妻棠轰嗽哦蛹瞅少睡静态成员与类模板静态成员与类模板类模板的提出C++为了减少重复工作,添加了模板(template)功能,有效的解决了上述问题。将类的定义方法改为:template<classnumtype>pare{private:numtypea,b;pare(numtypex,numtypey);numtypeMax();}蜘挠灾锑谤美棕矗衷裔衣昏字辱弦弓季谗劲铜首随渤购阀元廷毁墟凭助酉静态成员与类模板静态成员与类模板template<class类型参数名>template是关键字,表示模板后面的尖括号内是参数列表,class表示后面是类型参数。类模板的定义区别于普通类的定义,不能将成员函数的说明和实现分开在不同的文件里。否则会产生连接错误。。编写每个成员函数的具体实现时,应写成类模板格式:template<class虚拟类型参数>函数虚拟类型类名<虚拟类型参数>::函数名(参数表)搪编票戍墟盎室剃纠其犬澜疤篡律蜂舜扁墩挞奎箕注栈遍众勘诱皱湿播门静态成员与类模板静态成员与类模板

静态成员与类模板 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人drp539606
  • 文件大小48 KB
  • 时间2019-08-05