1.定义静态数据成员后要对静态数据成员进行初始化!
静态数据成员的初始化:
<数据类型><类名>::静态数据成员 = <值>
2.静态数据成员往往数私有的,静态数据成员不能直接访问,要通过定义为公有的静态函数成员来访问静态数据成员。
3.静态函数成员接口实现时在前面不加 static 前缀。
4.静态函数成员,不能直接访问非静态数据成员,除非通过对象名来访问该对象的非静态数据成员。
部分代码描述:
定义货物类,私有成员有货物重量,货物总重量(静态数据成员),初始化静态数据成员。
static int gettotalweight();不能直接访问 weight
#include <iostream>
using namespace std;
class Tgoods{
private:
int weight;
static int totalweight;
public:
Tgoods(int w);
~Tgoods();
int getweight();
static int gettotalweight();
};
//△<数据类型><类名>::<静态数据成员名>=<值>
int Tgoods::totalweight = 0;
Tgoods::Tgoods(int w){
weight = w;
totalweight += weight;
}
Tgoods::~Tgoods(){
totalweight -= weight;
}
Tgoods::getweight(){
return weight;
}
int Tgoods::gettotalweight(){
return totalweight;
}
int main()
{
Tgoods goods1(20), goods2(30);
cout<< Tgoods::gettotalweight() <<endl;
//getchar();
return 0;
}