1.static(静态成员)
1.1 static 修饰什么?
1.2 static 修饰有什么用?
- 类似全局变量(存储在数据段),全世界只有一份,只不过在类中定义限制了作用域而已
1.3 静态成员和静态函数怎么访问?
- 对象.静态成员
- 类名::静态成员
- 对象指针–>静态成员
1.4 静态成员
class Car {
public:
static int m_price;
};
int Car::m_price = 10;
- 静态变量 和全局变量有什么不同?
- 可以设置访问权限(public,private,protected) 达到局部共享的目的
1.5 静态函数
- 没有this指针
- this 代表调用对象, 只有新建对象后才会有局部变量,而静态函数没有对象就可以访问,所以不可以访问非静态成员变量,和非静态函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210226140807216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xJQU5HRkFOR1dFSQ==,size_16,color_FFFFFF,t_70)
1.6 被static修饰的汇编分析
class Car {
public:
int m_age;
static int m_price;
static void run() {
cout << "run()" << endl;
}
void run2() {
cout << "run()" << endl;
}
};
int Car::m_price = 10;
int g_filed = 0;
int main() {
Car car1;
car1.m_age = 5;
car1.m_price = 1;
g_filed = 7;
car1.run2();
Car::run();
Car car2;
car2.m_price = 2;
getchar();
return 0;
}