1.C++ static
- static特点:
1.存放在[数据段]
2.生命周期一直到[进程]结束
3.数据只分配-次 - static修饰的全局变量作用域在本文件有效
- static修饰的变量默值认为0
- static修饰成员属性
- static修饰的成员属性与类不同空间,所以不能在类内初始化
类外初始化: 数据类型 类名:: 类内变量名 = ??
类内:private: static int a;
类外:int className :: a=0;
注意:在类内,可通过const修饰static修饰的属性,就可以初始化:
类内:const static int a=10;
8.static 返回值类型 函数名()
注意:static 修饰的属性和方法都在数据段,函数访问的量也要static
在类内,不是static修饰的变量,在static函数里是错误的。
9.通过static修饰的函数和变量,在类内声明,调用如下:
类内写法:static修饰成员方法
1.实现方式
static成员类型成员名(参数)
例如:
static int show(int a)
{
}
类外写,类内声明为static:
类内: static int show(int a);
类外:int 类名 ::show(int a);
10.类外定义,赋值,初始化:。。。
10.1. static修饰的成员方法不能使用类里面的非静态成员,因为他们不属于同一个空间,this也无法使用。
10.2. static修饰的成员方法可以使用类里面的static修饰的成员属性,或成员方法
10.3.static的主要作用其实是[可以不创建对象],直接通过类名: :成员属性或者成员方法实现例如
class Mat
public:
static void add(){}
static void mul(){};
static int number;
};
int main()
{
Mat::add();
Mat::number ;
}
拓展:C++强制类型转化:
this传递给创建线程函数
Lcdthread*th = static_cast
th=this
```cpp #includeusing namespace std; class AA{ public: AA(){cout<<"AA: "<<"a="<
下回见



