类与对象\静态成员

简介: 类与对象\静态成员

静态成员在同一个类的不同成员间可以数据共享

不管有多少对象,静态成员只有一个

静态成员包括 静态数据成员 和 静态成员函数

静态数据成员的初始化必须在类外进行,默认初始值为0

#include <iostream>
using namespace std;
 
class Croster
{
public:
  static int Count;
private:
  string name;
  int math;
  int english;
  static int Sum;
  static int Ave;
public:
  Croster(string na="undef",int m=0,int e=0);
  void Display1();
  static void Display2();
  ~Croster();
};
 
Croster::Croster(string na, int m, int e):name(na),math(m),english(e)
{
  cout << "hi,newcomer" << endl;
  Sum += (math + english);
  Count--;  //在构造函数中修改计数
}
 
void Croster::Display1()
{
  cout << name << endl;
  cout << "Math:" << math << endl;
  cout << "English:" << english << endl;
  cout << "Sum=" << Sum << endl;
}
 
void Croster::Display2()
{
  //静态成员函数不允许访问非静态成员
  if (Count == 50)
    cout << "Ave=0" << endl;
  else
    cout << "Ave=" << Sum * 1.0 / (50 - Count) << endl;
}
 
Croster::~Croster()
{
  cout << "Bye~" << endl;
  Count++;    //在析构函数中修改计数
  Sum -= (math + english);
}
 
//初始化静态数据成员
int Croster::Count = 50;
int Croster::Sum = 0; //默认为0,这行可以不写
int main()
{
  Croster::Display2();
  Croster stu_a("LiMei", 87, 97);
  stu_a.Display1();
  Croster stu_b("LiLei", 83, 93);
  stu_b.Display1();
  Croster* p;
  p = new Croster("ZhaoYan", 95, 87);
  p->Display1();
  delete p;
  Croster::Display2();
 
  return 0;
}
目录
相关文章
|
编译器 C语言 C++
类和对象(1):类,对象,this指针
类和对象(1):类,对象,this指针
|
6月前
类与对象\友元
类与对象\友元
25 1
|
6月前
类与对象\this指针
类与对象\this指针
34 0
|
7月前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
7月前
|
C++
c++类和对象一静态成员的讲解
c++类和对象一静态成员的讲解
45 0
c++类和对象一静态成员的讲解
|
7月前
|
C++
【C++】类和对象(五)友元、内部类、匿名对象
【C++】类和对象(五)友元、内部类、匿名对象
|
7月前
|
C++
C++类与对象【友元】
C++类与对象【友元】
|
7月前
|
C++
c++类与对象(五):友元、内部类、临时对象、匿名对象
c++类与对象(五):友元、内部类、临时对象、匿名对象
43 0
|
编译器 C++
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
|
Java 编译器 C++
【C++基础】类与对象(下) 初始化列表、友元、内部类、匿名对象
【C++基础】类与对象(下) 初始化列表、友元、内部类、匿名对象
62 0
【C++基础】类与对象(下) 初始化列表、友元、内部类、匿名对象