C++类静态成员与类静态成员函数

C++类静态成员与类静态成员函数

ID:40543440

大小:16.64 KB

页数:4页

时间:2019-08-04

C++类静态成员与类静态成员函数_第1页
C++类静态成员与类静态成员函数_第2页
C++类静态成员与类静态成员函数_第3页
C++类静态成员与类静态成员函数_第4页
资源描述:

《C++类静态成员与类静态成员函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++类静态成员与类静态成员函数当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与该类相关的,是类的一种行为,而不是与该类的实例对象相关。    静态数据成员的用途之一是统计有多少个对象实际存在。    静态数据成员不能在类中初始化,实际上类定义只是在描述对象的蓝图,在其中指定初值是不允许的。也不能在类的构造函数中初始化该成员,因为静态数据成员为类的各个对象共享,否则每次创建一个类的对象则静态数据成员都要被重新初始化。   

2、 静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值。    静态成员的值对所有的对象是一样的。静态成员可以被初始化,但只能在类体外进行初始化。    一般形式:    数据类型类名::静态数据成员名=初值    注意:不能用参数初始化表对静态成员初始化。一般系统缺省初始为0。    静态成员是类所有的对象的共享的成员,而不是某个对象的成员。它在对象中不占用存储空间,这个属性为整个类所共有,不属于任何一个具体对象。所以静态成员不能在类的内部初始化,比如声明一个学生类,其中一个成员

3、为学生总数,则这个变量就应当声明为静态变量,应该根据实际需求来设置成员变量。#include"iostream"usingnamespacestd;classtest{private:     intx;     inty;public:     staticintnum;     staticintGetnum()     {          x+=5;  //这行代码是错误的,静态成员函数不能调用非静态数据成员,要通过类的对象来调用。          num+=15;          returnnum;     }};inttest::num=10;intmain(void

4、){     testa;     cout<

5、无须加static关键字,否则是错误的。    若在类的体外来实现上述的那个静态成员函数,不能加static关键字,这样写就可以了:     inttest::Getnum()     {       .........     }1、static成员的所有者是类本身和对象,但是多有对象拥有一样的静态成员。从而在定义对象是不能通过构造函数对其进行初始化。2、静态成员不能在类定义里边初始化,只能在classbody外初始化。3、静态成员仍然遵循public,private,protected访问准则。4、静态成员函数没有this指针,它不能返回非静态成员,因为除了对象会调用它外,类本身也

6、可以调用。 静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态数据成员必须通过参数传递的方式得到一个对象名,然后通过对象名来访问。classMyclass{private:        inta,b,c;        staticintSum;    //声明静态数据成员public:        Myclass(inta,intb,intc);        voidGetSum();};intMyclass::Sum=0;       //定义并初始化静态数据成员Myclass::Myclass(inta,intb,intc){        this->a=a;

7、        this->b=b;        this->c=c;        Sum+=a+b+c;}voidMyclass::GetSum(){        cout<<"Sum="<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。