欢迎来到天天文库
浏览记录
ID:58939120
大小:194.50 KB
页数:44页
时间:2020-09-28
《数据共享和成员特性课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章数据共享和成员特性第11章数据共享和成员特性11.1静态成员11.2友元11.3成员其他特性11.4this指针11.5综合应用实例11.1静态成员静态成员是类中的成员,是类的一部分,在类外不可访问,从而起到保护作用。静态成员有静态数据成员和静态成员函数之分。静态数据成员与静态变量相似,具有静态生存期,是在类中声明的全局数据成员,能被同一个类的所有对象所共享。公有静态成员函数不仅可以通过类对象来访问,还可通过“类名::静态成员函数”的形式在程序中直接调用。11.1.1静态数据成员使用静态数据成员可以节省内存,因为它只存储一处,供所有对象共享。静态数据成员的值是
2、可修改的,但它对每个对象都是一样的。与静态变量相似,静态数据成员是静态存储(static)的,但定义一个静态数据成员与一般静态变量不一样,它必须按下列两个步骤进行:(1)在类中使用关键字static声明静态数据成员。(2)在类外为静态数据成员分配内存空间并初始化。其定义格式如下:<数据类型><类名>::<静态数据成员名>=<值>[例Ex_StaticData]静态数据成员的使用示例#includeusingnamespacestd;classCSum{public:CSum(inta=0,intb=0)//A{nSum+=a+b;}intgetSum
3、(){returnnSum;}voidsetSum(intsum){nSum=sum;}private:staticintnSum;};intCSum::nSum=0;intmain(){CSumone(10,2),two;cout<<"one:sum="<4、1)静态数据成员是类中的成员,它的访问属性同普通数据成员一样,可以为public、private和protected。(2)静态数据成员的实际定义和初始化本身是不受public、private和protected等访问属性限制的。(3)静态数据成员可看成是类中声明、类外定义的静态全局变量,具有静态生存期,在程序中从实际定义时开始产生,到程序结束时消失。(4)当静态数据成员为public时,在类外对该成员的访问和引用可通过对象,也可直接引用。<类名>::<静态数据成员名>例:classCSum{…public:StaticintnSum;};intCSum::nSum=05、;intmain(){CSumone;one.nSum=10;CSum::nSum=12;cout<6、ata){nSum=data;}public:intnSum;};CSum::ChangData(5);静态成员函数只能引用静态数据成员。[例Ex_StaticMember]静态成员的使用示例#includeusingnamespacestd;classCData{public:staticvoidAdd(inta)//添加数据a{if(pCur>=data+20)cout<<"内存空间不足,无法添加!"<7、ivate:staticintdata[20];//声明静态内存空间staticint*pCur;//声明静态指针成员};intCData::data[20];//实际定义,默认的初值为0int*CData::pCur=data;//实际定义,设初值为data数组的首地址voidCData::Print(void)//类外定义的静态成员函数{for(inti=0;i<(pCur-data);i++)cout<
4、1)静态数据成员是类中的成员,它的访问属性同普通数据成员一样,可以为public、private和protected。(2)静态数据成员的实际定义和初始化本身是不受public、private和protected等访问属性限制的。(3)静态数据成员可看成是类中声明、类外定义的静态全局变量,具有静态生存期,在程序中从实际定义时开始产生,到程序结束时消失。(4)当静态数据成员为public时,在类外对该成员的访问和引用可通过对象,也可直接引用。<类名>::<静态数据成员名>例:classCSum{…public:StaticintnSum;};intCSum::nSum=0
5、;intmain(){CSumone;one.nSum=10;CSum::nSum=12;cout<6、ata){nSum=data;}public:intnSum;};CSum::ChangData(5);静态成员函数只能引用静态数据成员。[例Ex_StaticMember]静态成员的使用示例#includeusingnamespacestd;classCData{public:staticvoidAdd(inta)//添加数据a{if(pCur>=data+20)cout<<"内存空间不足,无法添加!"<7、ivate:staticintdata[20];//声明静态内存空间staticint*pCur;//声明静态指针成员};intCData::data[20];//实际定义,默认的初值为0int*CData::pCur=data;//实际定义,设初值为data数组的首地址voidCData::Print(void)//类外定义的静态成员函数{for(inti=0;i<(pCur-data);i++)cout<
6、ata){nSum=data;}public:intnSum;};CSum::ChangData(5);静态成员函数只能引用静态数据成员。[例Ex_StaticMember]静态成员的使用示例#includeusingnamespacestd;classCData{public:staticvoidAdd(inta)//添加数据a{if(pCur>=data+20)cout<<"内存空间不足,无法添加!"<7、ivate:staticintdata[20];//声明静态内存空间staticint*pCur;//声明静态指针成员};intCData::data[20];//实际定义,默认的初值为0int*CData::pCur=data;//实际定义,设初值为data数组的首地址voidCData::Print(void)//类外定义的静态成员函数{for(inti=0;i<(pCur-data);i++)cout<
7、ivate:staticintdata[20];//声明静态内存空间staticint*pCur;//声明静态指针成员};intCData::data[20];//实际定义,默认的初值为0int*CData::pCur=data;//实际定义,设初值为data数组的首地址voidCData::Print(void)//类外定义的静态成员函数{for(inti=0;i<(pCur-data);i++)cout<
此文档下载收益归作者所有