欢迎来到天天文库
浏览记录
ID:56531207
大小:302.50 KB
页数:34页
时间:2020-06-27
《类和对象学习.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、类的其他特性.数据的共享(静态成员和友元).共享数据的保护(常成员)this指针主要内容静态数据静态数据成员定义与使用:在类定义中,用关键字static修饰的数据成员为静态数据成员。该类所有对象共享由系统为静态成员分配的一个存储空间,而这个存储空间是在编译时分配的,在定义对象时不再为静态成员分配空间。静态数据是该类所有对象所共有的,可提供同一类的所有对象之间信息交换的捷径。静态数据成员属于整个类,使用时可用以下格式:类名::静态数据成员名引用性声明:在类中用关键字static对静态成员进行的声明。定义性说明
2、:使用类名限定对静态成员进行定义性说明,这时可以对其进行初始化。静态数据成员:static修饰的成员数据staticinta,b;访问静态成员:类名::静态成员标识符clock::a静态成员不属于某个对象,它是为某个类的所有对象所共有的。即静态成员是属于类的。可提供同一类的所有对象之间信息交换的捷径。访问类名::静态数据成员名静态成员(staticclassmember)classaccount{public:account(doubleamount,conststring&owner);stringown
3、er(){returnowner;}private:staticdoubleRate;doubleamount;stringowner;};#includeclassCopy5{public:Copy5(intv){val=v;count++;}Copy5(constCopy5&cp){val=cp.val;count++;}voidprintcount(){cout<4、员数据的说明与使用。intCopy5::count=0;//notnecessaryasdefaultis0!!!定义性声明并初始化voidmain(){Copy5c1(100);Copy5c2=c1;c1.printcount();}问题:为什么输出是2?#includeclassCtest{private:staticintcount;//注意私有public:Ctest(){++count;cout<<"对象数量="<5、;cout<<"对象数量="<6、员函数名的类型说明符前面加上关键字static即可。函数体的实现与一般成员函数相同,在类内或在类外实现都可以。静态成员函数引用的一般格式为:类名::静态成员函数名(参数表)对象名.静态成员函数名(参数表)例2静态成员函数的说明与使用。#includeclassCopy6{public:Copy6(intv){val=v;count++;}Copy6(constCopy6&cp){val=cp.val;count++;}staticvoidprintcount(){cout<7、t<8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
4、员数据的说明与使用。intCopy5::count=0;//notnecessaryasdefaultis0!!!定义性声明并初始化voidmain(){Copy5c1(100);Copy5c2=c1;c1.printcount();}问题:为什么输出是2?#includeclassCtest{private:staticintcount;//注意私有public:Ctest(){++count;cout<<"对象数量="<5、;cout<<"对象数量="<6、员函数名的类型说明符前面加上关键字static即可。函数体的实现与一般成员函数相同,在类内或在类外实现都可以。静态成员函数引用的一般格式为:类名::静态成员函数名(参数表)对象名.静态成员函数名(参数表)例2静态成员函数的说明与使用。#includeclassCopy6{public:Copy6(intv){val=v;count++;}Copy6(constCopy6&cp){val=cp.val;count++;}staticvoidprintcount(){cout<7、t<8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
5、;cout<<"对象数量="<6、员函数名的类型说明符前面加上关键字static即可。函数体的实现与一般成员函数相同,在类内或在类外实现都可以。静态成员函数引用的一般格式为:类名::静态成员函数名(参数表)对象名.静态成员函数名(参数表)例2静态成员函数的说明与使用。#includeclassCopy6{public:Copy6(intv){val=v;count++;}Copy6(constCopy6&cp){val=cp.val;count++;}staticvoidprintcount(){cout<7、t<8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
6、员函数名的类型说明符前面加上关键字static即可。函数体的实现与一般成员函数相同,在类内或在类外实现都可以。静态成员函数引用的一般格式为:类名::静态成员函数名(参数表)对象名.静态成员函数名(参数表)例2静态成员函数的说明与使用。#includeclassCopy6{public:Copy6(intv){val=v;count++;}Copy6(constCopy6&cp){val=cp.val;count++;}staticvoidprintcount(){cout<7、t<8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
7、t<8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
8、态成员。如果要引用非静态成员时,可以通过对象来引用。具体就是先通过参数传递方式得到对象名,然后通过对象名访问非静态成员。2友元友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。例4用友元函数求圆柱体的体积。//column.h#include#includeclasscolumn//类的定义{private://私有成员数据floatx
此文档下载收益归作者所有