您的位置:首页 > 编程语言 > C语言/C++

c++面试秘籍167页:静态成员变量的使用

2018-03-19 14:49 197 查看
#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成员,而全局对象不能。

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: