C++静态成员的用法

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。于是就可以通过类名直接访问静态成员,即

Class::member,但是不能通过类名访问非静态成员,因为非静态成员是属于对象的,只有实例化后才能使用。这样就有

1)静态成员函数可用过类名访问,但不能通过类名来调用类的非静态成员函数

如果通过对象,则

2)静态和非静态成员都可通过对象访问

之前的游戏中,我在Food静态类中加了一个非静态成员Color,此时编译器就报错,“错误:在静态成员函数中使用成员‘Food::color’无效”,所以

3)在静态类中不能引用非静态成员,即每个静态成员函数都不能引用非静态成员。

静态成员是对立与对象存在,所以在没有对象的时候也可通过类名引用,但是需要通过Food* Food::instance = 0初始化后才能使用。

4)静态成员先初始化才能使用

另外还有

5)非静态成员函数可以调用静态和非静态成员

这些基本就是静态类的使用规则,严格遵守避免错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章