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

本文通过两个示例详细介绍了C++中静态数据成员和静态成员函数的使用方法。首先展示了如何定义和使用静态数据成员来共享同一份数据,然后演示了如何通过静态成员函数访问静态成员变量以实现特定功能。

一、静态数据成员

#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;
}

1-1

二、静态函数

#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; 
}

2-1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值