?1.在函数中的static变量
#include <iostream>
using namespace std;
void sum(int a, int b) {
int add = 10000;
cout <<"运行前"<< add << endl;
add = a + b;
cout << "运行后" << add << endl;
}
int main() {
sum(1, 2);//static,当首次调用这个函数时执行,add=10000,第二次调用就不执行这句了,add的值为上次调用时给add赋的值。
sum(2, 3);
system("pause");
}
?2.类中的成员属性,所有类会共享这个属性,一个类修改了该属性,另一个类的该属性值也就改变了
#include <iostream>
using namespace std;
class Sum{
public:
static int add ;
};
int Sum::add = 100;
int main() {
Sum sum1;
cout << sum1.add;
sum1.add = 10000000;
Sum sum2;
cout << sum2.add;
system("pause");
}
利用这一特性,可以用来统计我总共实例化了几个对象?
#include <iostream>
using namespace std;
class Sum{
public:
Sum() { count++; }
static int count;
};
int Sum::count;
int main() {
Sum sum1;
Sum sum2[2];
cout<<sum2->count;
system("pause");
}
用static声明的方法,可以不实例化类直接调用
#include <iostream>
using namespace std;
class Tc{
public:static void display()
{
cout << "sssw" << endl;
}
};
int main() {
Tc::display();
system("pause");
}
|