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++
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?