C++快速入门 第二十二讲:静态属性和静态方法2


规则:

静态成员是所有对象共享的,所以不能在静态方法里访问非静态的元素。(因为每个对象都有自己的this指针,静态方法不是属于某个特定的对象,而是由全体对象共享的,静态成员存储地址与对象并不在一起)

非静态方法可以访问类的静态成员,也可以访问类的非静态成员。

this指针是类的一个自动生成、自动隐藏的私有成员,它存在于类的非静态成员函数中,指向被调用函数所在的对象的地址。

当一个对象被创建时,该对象的this指针就自动指向对象数据的首地址。

当我们调用一个方法时,this指针都会随着你提供的输入参数被秘密的传递给那个方法。

实例1:this指针应用

1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 class Pet//定义Pet类 6 ; 18 int Pet::count = 0;//注意这一句,他起码做了两件事(为count分配静态内存,初始化为0) 外部对静态属性进行声明 19 Pet::Pet(string theName)//构造函数 20 26 Pet::~Pet()//析构函数 27 31 int Pet::getCount()//返回count值 32 35 36 37 class Dog:public Pet//定义Dog类继承于Pet类 38 ; 42 Dog::Dog(string theName):Pet(theName)//Dog的构造函数继承于Pet类中的Pet(theName)函数,即该构造函数调用时将调用Pet函数 43 46 47 class Cat:public Pet//定义Cat类继承于Pet类 48 ; 52 Cat::Cat(string theName):Pet(theName)//Cat的构造函数继承于Pet类中的Pet(theName)函数 53 55 56 int main() 57 70 cout << "\n现在还剩下" << Pet::getCount() << "只宠物!"; 71 72 return 0; 73 }


上一篇:C++快速入门 第十二讲:传值、传址和传引用

下一篇:C++快速入门 第三十一讲:错误处理与调试2


C/C&#x2B;&#x2B;
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图