类与对象\静态成员

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

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

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

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

静态数据成员的初始化必须在类外进行,默认初始值为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++
3.C++类和对象(中)
3.C++类和对象(中)
|
编译器 C++
【C++】类和对象(二)
类和对象(二) 类中有六个默认成员函数: 编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。
62 0
|
存储 安全 编译器
C++类和对象【中】
C++类和对象【中】
48 0
|
7月前
|
C++
C++类和对象3
C++类和对象
|
7月前
|
存储 编译器 C++
C++类和对象2
C++类和对象
|
7月前
|
存储 安全 编译器
2.C++类和对象(上)
2.C++类和对象(上)
|
8月前
|
存储 编译器 C语言
【c++】类和对象(一)
朋友们,大家好,本篇内容我们来对类和对象进行初步的认识
|
8月前
|
Java 数据安全/隐私保护
类和对象一
类和对象一
43 1
|
8月前
|
存储 编译器 C语言
【c++】类和对象1
【c++】类和对象1
46 1
|
8月前
|
编译器 C++
【c++】类和对象3
【c++】类和对象3
40 1

热门文章

最新文章