1. 静态成员变量
- 关键字 static 可以用于说明一个类的成员,静态成员提供了一个同类对象的共享机制
- 把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员
- 静态成员局部于类,它不是对象成员
#include "iostream"
using namespace std;
class BB
{
public:
void printtC()
{
cout<<"c:"<<c<<endl;
}
void AddC()
{
c=c+1;
}
static void getC() //静态成员函数
{
cout<<"c:"<<c<<endl;
//请问在静态成员函数中,能调用 普通成员属性 或者 普通成员函数吗
//cout<<"a:"<<a<<endl; //error C2597: 对非静态成员“BB::a”的非法引用
}
protected:
private:
int a;
int b;
static int c; //静态成员变量
};
//静态函数中,不能使用普通成员函数和普通成员变量
int BB::c=10;
void main()
{
BB b1,b2,b3;
b1.printtC();
b2.AddC();
b3.printtC();
//静态成员函数的调用方法
b3.getC();//用对象.
BB::getC();//类::
cout<<"hello..."<<endl;
system("pause");
return ;
}
2. 静态成员函数
1)概念
- 静态成员函数数冠以关键字static
- 静态成员函数提供不依赖于类数据结构的共同操作,它没有this指针
- 在类外调用静态成员函数用 “类名 :: ”作限定词,或通过对象调用
2)案例
3)疑难问题:静态成员函数中,不能使用普通变量。
//静态成员变量属于整个类的,分不清楚,是那个具体对象的属性。