静态数据成员:
#include<iostream>
using namespace std;
class Box
{
public:
Box(int w,int l);
int volume();
static int height;
int width;
int length;
};
Box::Box(int w,int l)
{
width=w;
length=l;
}
int Box::volume()
{
return (height*length*width);
}
int Box::height=10;//给静态数据成员初始化,静态数据成员为所有对象共有
int main()
{
Box box1(12,23);
Box box2(23,34);
cout<<box1.height<<endl;
cout<<box2.height<<endl;
cout<<Box::height<<endl;//这是一大亮点
cout<<"the volume1 is "<<box1.volume()<<endl;
cout<<"the volume2 is "<<box2.volume()<<endl;
system("pause");
return 0;
}
静态成员函数:
#include<iostream>
using namespace std;
class Student
{
public:
Student(int n = 0,int a = 0,float s = 0):num(n),age(a),score(s){}
void total();
static float average();//静态成员函数用来访问静态数据成员
private:
int num;
int age;
float score;
static float sum;
static int count;
};
void Student::total()
{
sum += score;
count ++;
}
float Student::average()//静态成员函数
{
return (sum / count);
}
float Student::sum = 0.0;//形式类似于在类外定义一个成员函数,定义一个静态成员变量
int Student::count = 0;
int main()
{
Student stu[4] = {//对象数组
Student(1001, 18, 70),
Student(1002, 19, 78),
Student(1003, 20, 98),
Student()
};
for(int i = 0;i < 4;i++)
stu[i].total();
cout<<"the average score of "<<"4"<<"students is"<<" "<<Student::average()<<endl;
system("pause");
return 0;
}