1 / 31
文档名称:

第5章 类和对象(二).ppt

格式:ppt   页数:31页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第5章 类和对象(二).ppt

上传人:中国课件站 2011/10/11 文件大小:0 KB

下载得到文件列表

第5章 类和对象(二).ppt

文档介绍

文档介绍:第6章类和对象(二)
静态成员
静态数据成员
在一个类中,若将一个数据成员说明为static,这种成员称为静态数据成员。
与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据的拷贝。从而实现了同一个类的不同对象之间的数据共享。
定义静态数据成员的格式如下:
static 数据类型数据成员名;

#include<>
#include<>
class Student {
public:
Student(char *name1,char *stu_no1,float score1);
~Student();
void show(); // 输出姓名、学号和成绩
void show_count_sum_ave(); // 输出学生人数、
总成绩和平均成绩
private:
char *name; // 学生姓名
char *stu_no; // 学生学号
float score; // 学生成绩
static int count; // 静态数据成员,统计学生人数
static float sum; // 静态数据成员,统计总成绩
static float ave; // 静态数据成员,统计平均成绩
};
Student::Student(char *name1,char *stu_no1,float score1 )
{
name=new char[strlen(name1)+1]; strcpy(name,name1);
stu_no=new char[strlen(stu_no1)+1]; strcpy(stu_no,stu_no1);
score=score1;
++count; // 累加学生人数
sum=sum+score; // 累加总成绩
ave=sum/count; // 计算平均成绩
}
Student::~Student()
{ delete []name;
delete []stu_no;
--count;
sum=sum-score;
}
void Student::show()
{ cout<<"\n name: "<<name;
cout<<"\n stu_no: "<<stu_no;
cout<<"\n score: "<<score; }
void Student::show_count_sum_ave()
{
cout<<"\n count: "<<count; // 输出静态数据成员count
cout<<"\n sum: "<<sum; // 输出静态数据成员sum
cout<<"\n ave: "<<ave; // 输出静态数据成员ave
}
int Student::count=0; // 静态数员count初始化
float Student::sum=; // 静态数员sum初始化
float Student::ave=; // 静态数员ave初始化
void main()
{
Student stu1("Liming","990201",90);
();
();
Student stu2("Zhanghao","990202",85);
();
();
}
静态成员函数
定义静态成员函数的格式如下:
static 返回类型静态成员函数名(参数表);
与静态数据成员类似,调用公有静态成员函数的一般格式有如下几种:
类名::静态成员函数名(实参表)
对象. 静态成员函数名(实参表)
对象指针->静态成员函数名(实参表)

#include<>
#include<>
class Student {
private:
char *name; // 学生姓名
char *stu_no; // 学生学号
float score; // 学生成绩
static int count; // 静态数据成员,统计学生人数
static float sum; // 静态数据成员,统计总成绩
public:
Student(char *name1,char *stu_no1,float score1);
~Student();
void show(); // 普通成员函数,输出姓名、学号和成绩
static void show_count_sum