c++ static 用法
#include <iostream>
using namespace std;
/*
静态意味着面对所有的对象,即属于类,
属于类,不由对象调用.可以访问私有数据
静态变量:相当于全局变量,,针对于同一类对象的全局变量
静态函数:不能访问普通变量,只能访问静态变量;
*/
class Ctext
{
static int n;//静态变量;
int m;
public:
Ctext()
{
m=0;
n=12;//这里并不是对静态变量的初始化(初始化只能在全局里),而是运算(一个函数对变量的使用)
}
void showw()//show(Ctext* this)//普通函数由对象调用(有this指针),可以访问属于类的变量,也可以访问属于对象的变量
{
cout<<n<<" "<<m<<endl;
shoow();//普通函数可以调用静态函数;
}
void static shoow()//静态函数不需要对象调用,没有普通函数默认的this指针,所以不能访问对象的变量(就根本没有对象传参进来).如果想要对对象进行操作,则可以穿个(对象)参数进来
{
//cout<<m<<endl;//可以将对象传参进来
cout<<n<<endl;
//showw();//静态函数没有对象传进来,就没办法通过对象调用普通函数.
}
};
int Ctext::n=12;//静态变量不能在构造函数内初始化,必须在类外以这样的形势进行初始化一次;
int main()
{
Ctext a;
cout << "Hello world!" << endl;
return 0;
}