前言
对C++ static 常见用法进行学习总结
Code
1、函数中的静态变量
当变量声明为static时,空间将在程序的生命周期内分配。
即使多次调用该函数,静态变量的空间也只分配一次,前一次调用中的变量值通过下一次函数调用传递。
#include <iostream>
#include <string>
using namespace std;
void de()
{
// static variable
static int count = 0;
cout << count << " ";
// value is updated and
// will be carried to next
// function calls
count++;
}
int main()
{
for (int i=0; i<5; i++)
demo();
return 0;
}
result
0 1 2 3 4
2、类中的静态变量
类中的静态变量应由用户使用类外的类名和范围解析运算符显式初始化
#include<iostream>
using namespace std;
// 类中的静态变量应由用户使用类外的类名和范围解析运算符显式初始化
class Apple
{
public:
static int i;
Apple()
{
// Do nothing
};
};
int Apple::i = 1;
int main()
{
Apple obj;
// prints value of i
cout << obj.i << endl;
return 0;
}
result
1
3、静态成员
类对象为静态,静态对象的范围是贯穿程序的生命周期
#include<iostream>
using namespace std;
class Apple
{
int i;
public:
Apple()
{
i = 0;
cout << "Inside Constructor\n";
}
~Apple()
{
cout << "Inside Destructor\n";
}
};
int main()
{
int x = 0;
if (x==0)
{
static Apple obj;
}
cout << "End of main\n";
}
result
Inside Constructor
End of main
Inside Destructor