7.1静态static
所有的静态成员的内存在程序刚运行,第一时间就会创建内存
两种用法:
- 1.标注类的属性,所有的类对象都共用同一个静态成员属性,而且无需创建对象,直接用类名::也能直接操作静态属性
- 2.标注类的函数,静态函数里只能调用静态函数或者静态属性,普通函数里什么都能调用
class Player {
public:
Player() {
}
static int eyeNumber;
int hp;
static void test() {
cout << eyeNumber << endl;
}
};
//类中静态成员赋值必须在类的外部,数据类型 类名::成员名 = 赋值
int Player::eyeNumber = 2;
void setNumber() {
//静态成员static类型,内存保存在全局内存区域,只有程序关闭的时候,内存才会释放,静态数据的初始化只会执行第一次
static int a = 10;
a += 5;
cout << a << endl;
}
7.2常量const
class Player {
public:
//常量成员,两种赋值方式:它的赋值可以声明成员的同时就初始化赋值
//也可以使用初始化列表赋值,构造函数():成员(要赋的值)
//const int hp = 100;
Player():hp(100) {
cout << "good" << endl;
}
const int hp;
//multable int hp;
//常量函数,仅限于C++中存在的特殊函数,使用上把这个函数当成一个普通函数来用,但是不允许在这个函数里修改属性,但是可以访问
//而且常量函数里面只能调用常量函数,但是类的属性如果加multable,在常量函数中修改也无所谓
void show()const {
cout << hp << endl;
int a = 10;
a += 5;
hp += 100;
}
};