C++ 学习之路(4):静态成员

来源:互联网 发布:mysql数据库回滚 编辑:程序博客网 时间:2024/06/05 05:57
// 静态成员#include <iostream>#include <string>using namespace std;class Student{    private:       char *name;          // 普通数据成员,用于表示学生姓名       char *stu_no;        // 普通数据成员,用于表示学生学号       float score;         // 普通数据成员,用于表示学生成绩       static int count;    // 静态数据成员,用于统计学生人数       static float sum;    // 静态数据成员,用于统计累加成绩       static float ave;    // 静态数据成员,用于统计平均成绩   public:       Student(char *name1,char *stu_no1,float score1);       ~Student();       // 普通成员函数,用于输出姓名、学号和成绩       void show();                                // 静态成员函数,用于输出学生人数和累加成绩和平均成绩       static void show_count_sum_ave();       // 静态成员函数,用于访问非静态数据成员       static void display(Student &stu);   };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 += score;       // 累加学生成绩    ave = sum/count;    // 计算平均成绩}Student::~Student(){    delete []name;    delete []stu_no;}void Student::show(){    cout<<"姓名: "<<name<<endl;    cout<<"学号: "<<stu_no<<endl;    cout<<"成绩: "<<score<<endl;}void Student::show_count_sum_ave()      // 静态成员函数{    // 输出静态数据成员count    cout<<"学生人数: "<<count<<endl;        // 输出静态数据成员sum    cout<<"累加成绩: "<<sum<<endl;          // 输出静态数据成员ave    cout<<"平均成绩: "<<ave<<endl;      }// 静态成员函数(要通过 对象 )void Student::display(Student &stu)     {    // 输出非静态数据成员name    cout<<"姓名: "<<stu.name<<endl;           // 输出非静态数据成员stu_no    cout<<"学号: "<<stu.stu_no<<endl;    // 输出非静态数据成员score       cout<<"成绩: "<<stu.score<<endl;  }// 静态数据成员的初始化(若无赋值,默认为0)int Student::count = 0;float Student::sum = 0.0;float Student::ave = 0.0;int main(){    cout<<"在main()中输出: "<<endl;    Student stu1("Liming","070201",90);    stu1.show();    // 使用 类名 访问静态成员函数    Student::show_count_sum_ave();              cout<<"---------------------"<<endl;    Student stu2("Zhanghao","070202",80);    stu2.show();    // 使用 对象 访问静态成员函数    stu2.show_count_sum_ave();                  cout<<"\n用静态成员函数访问非静态数据成员输出: "<<endl;    // 使用 静态成员函数 访问非静态数据成员    Student::display(stu1);                     cout<<"---------------------"<<endl;    Student::display(stu2);    return 0;}
0 0
原创粉丝点击