类与对象\静态成员

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

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

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

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

静态数据成员的初始化必须在类外进行,默认初始值为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;
}
目录
相关文章
|
7月前
|
编译器 C语言 C++
类和对象(1):类,对象,this指针
类和对象(1):类,对象,this指针
|
1月前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)
一、初始化列表 ⭕初始化列表概念 ⭕初始化列表的优点 ⭕使用场景 ⭕explicit关键字 二、Static成员 ⭕Static成员概念 🔴静态数据成员: 🔴静态函数成员: ⭕使用静态成员的
75 0
|
10天前
类与对象\友元
类与对象\友元
9 1
|
1月前
|
编译器 C++
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
【C++基础(八)】类和对象(下)--初始化列表,友元,匿名对象
|
1月前
|
C++
c++类和对象一静态成员的讲解
c++类和对象一静态成员的讲解
19 0
c++类和对象一静态成员的讲解
|
1月前
|
C++
【C++】类和对象(五)友元、内部类、匿名对象
【C++】类和对象(五)友元、内部类、匿名对象
|
1月前
|
C++
C++类与对象【友元】
C++类与对象【友元】
|
10月前
|
算法 C++
【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)下
【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)下
60 0
【C++入门到精通】C++入门 —— 类和对象(初始化列表、Static成员、友元、内部类、匿名对象)下
|
1月前
|
存储 NoSQL C++
『 C++类与对象 』多继承与虚继承
『 C++类与对象 』多继承与虚继承
|
6月前
|
编译器 C++
类和对象:初始化列表,静态成员,友元,内部类,匿名对象
类和对象:初始化列表,静态成员,友元,内部类,匿名对象