文章目录

一、静态数据成员

#include <iostream>
using namespace std;

class Box
{
public:
Box(int, int); //声明带参构造函数
int volume(); //声明成员函数
static int height; //定义静态成员数据
int width;
int length;
};

//定义带参构造函数
Box::Box(int w, int len)
{
width= w; //初始化为传进的参数
length= len;
}

//定义计算体积成员函数
int Box::volume()
{
return (height * width * length);
}

//定义静态成员数据的值
int Box::height= 10;

int main()
{
Box b1(15, 20), b2(2, 3); //实例化两个对象b1,b2,传入不同参数
cout << "b1的高度为" << b1.height << endl;
cout << "b2的高度为" << b2.height << endl;
cout << "b1的体积为" << b1.volume() << endl;
cout << "b2的体积为" << b2.volume() << endl;
return 0;
}

C++静态数据成员与静态函数(案例分析)_程序设计

二、静态函数

#include <iostream>
using namespace std;

class Student
{
public:
Student(int n, int a, float s):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; //对静态成员数据初始化
int Student::count= 0;

int main()
{
//定义对象数组并初始化
Student stud[3]={
Student(1001, 11, 70),
Student(1002, 12, 80),
Student(1003, 13, 90)
};
int n;
cout << "请输入学生数量:" << endl;
cin >> n;
for(int i=0; i<n; i++) //调用3次total函数,统计总分
{
stud[i].total();
}
//调用静态成员函数
cout << n << "个学生的平均分为:" << Student::average() << endl;
return 0;
}

C++静态数据成员与静态函数(案例分析)_c++_02