c++中的静态成员函数__2018.05.20

本文介绍了在C++中如何定义和使用静态成员函数。通过实例展示了静态成员函数如何与类而非特定对象关联,并解释了静态成员函数的特点及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

成员函数也是可以定义成静态的,在类中声明函数的前面加static就成了静态成员函数。如:

static int volume();

和静态数据成员一样,静态成员函数是类的一部分而不是对象的一部分。如果要在类外调用公用的静态成员函数,要用类名和域运算符“::”。如:

Box::volume();

静态成员函数没有this函数。

静态成员函数,不影响其继承和被使用的权限。

#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;	//声明sum为静态数据成员,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,18,70),Student(1002,19,78) ,Student(1003,20,98) };
	int n;
	cout << "please input the number of student:";
	cin >> n;//输入需要求前面多少名学生的平均成绩
	for (int i = 0; i < n; ++i)
	{
		stud[i].total();
	}
	cout << "the average score of" << n << "student is" << Student::average() << endl;
	return 0;
}

公用的成员函数可以引用本对象中的一般数据成员(非静态数据成员),也可以引用类中的静态数据成员。

应当养成习惯,只有静态函数引用静态成员变量,而不引用非静态数据成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值