#include<iostream>
using namespace std;
class Myclass
{
public:
Myclass(int a,int b,int c);
void GetNumber();
void GetSum();
private:
int A;
int B;
int C;
int Num;
static int Sum;
};
int Myclass::Sum=0;
Myclass::Myclass(int a,int b,int c)
{
A=a;
B=b;
C=c;
Num=A+B+C;
Sum=A+B+C;
}
void Myclass::GetNumber()
{
cout<<"Number = "<<Num<<endl;
}
void Myclass::GetSum()
{
cout<<"Sum = "<<Sum<<endl;
}
int main()
{
Myclass M(3,7,10),N(14,9,12);
M.GetNumber();
N.GetNumber();
M.GetSum();
N.GetSum();
}
//程序输出结果为:
/*
Number = 20
Number = 34
Sum = 34
Sum = 34
因为Sum为静态类型 它为Myclass类所有,被Myclass的所有对象所共享
如果把 M(3,7,10)放在后面 则SUM=20;
与全局对象相比?使用静态数据成员有什么优势?
1.静态数据成员没有进入程序的全局名字空间,因此不存在程序中其他全局名字冲突的可能性
2.使用静态数据成员可以隐藏信息。因为静态成员可以是private成员,而全局对象不能。
*/