![](https://i-blog.csdnimg.cn/blog_migrate/9aa15ba71aecf1c78f66cd4135dc2e3f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c7daa7ac47f62d877e4ba5fbb40c1a38.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6d6ba55c6d8ecd6d28d27a752c3d8b33.png)
#include<iostream>
using namespace std;
class Student
{
public:
static int count; //班级人数 静态数据成员
static double total; //班级的总分 静态数据成员
Student(double score)
{
this->score = score;
count++;
total += score;
}
private:
double score;
};
int Student::count = 0; //static成员初始化
double Student::total = 0; //static成员初始化
int main()
{
cout << Student::count << endl;
cout << Student::total << endl;
Student s1(70);
cout << Student::count << endl;
cout << Student::total << endl;
cout << s1.count << endl;
return 0;
}
![](https://i-blog.csdnimg.cn/blog_migrate/610a737222d140b438c21bb7bc8a53a0.png)
普通:
#include<iostream>
using namespace std;
class Student
{
public:
static int count; //班级人数 静态数据成员
static double total; //班级的总分 静态数据成员
Student(double score)
{
this->score = score;
count++;
total += score;
}
double getAverage()
{
return total / count;
}
private:
double score;
};
int Student::count = 0; //static成员初始化
double Student::total = 0; //static成员初始化
int main()
{
Student s1(70), s2(80);
cout << s1.getAverage() << endl;
return 0;
}
静态:
#include<iostream>
using namespace std;
class Student
{
public:
static int count; //班级人数 静态数据成员
static double total; //班级的总分 静态数据成员
Student(double score)
{
this->score = score;
count++;
total += score;
}
static double getAverage()
{
//错误:cout<<score<<endl; 静态成员函数不能访问类中的非静态成员
return total / count;
}
private:
double score;
};
int Student::count = 0; //static成员初始化
double Student::total = 0; //static成员初始化
int main()
{
Student s1(70), s2(80);
cout <<Student::getAverage() << endl;
return 0;
}
也可:
#include<iostream>
using namespace std;
class Student
{
public:
static int count; //班级人数 静态数据成员
static double total; //班级的总分 静态数据成员
Student(double score)
{
this->score = score;
count++;
total += score;
}
static double getAverage()
{
return total / count;
}
private:
double score;
};
int Student::count = 0; //static成员初始化
double Student::total = 0; //static成员初始化
int main()
{
Student s[3] = { Student(70),Student(80),Student(90) };//定义对象数组
cout <<Student::getAverage() << endl;
cout << s[0].count << endl; //三个对象已经建立完成了,count已经++过了。
//cout << s[1].count << endl; 也为3。改成s[2]也是3。
cout << Student::count << endl;
return 0;
}