您的位置:首页 > 其它

于静态成员变量的二种访问权限的使用区别

2016-06-03 17:26 183 查看
关于静态成员变量的二种访问权限的使用区别,一种是公有,一种是私有,访问的区别,见代码:

/*
我们需要了解的是,假如我们要在一个类中的所有对象间共享某种数据,
不如将该数据声明为静态成员变量。假如你不想让该类外的所有函数都
可以访问该数据,那么不妨将某定义为私有成员,那么就只有该类的公
有成员方法才可以访问它。当然访问的前提是必须创建一个属于该类的
对象。
*/

#include<iostream>
using namespace std;

class A
{
public:
A(int x):it(x){total++;}
static int total; //公有静态变量
void func(){cout<<A::sum<<endl;}
~A(){total--;}
int getIt(){return it;}
void set(int age){it = age; }
private:
int it;
static int sum;
};
int A::total = 0;
int A::sum = 100;

void show1()
{
cout<<A::total<<endl;
}
//下面是错误的,外部不能访问私有成员,即使是静态变量
/*
void show2()
{
cout<<A::sum<<endl;
}
*/

int main()
{
/* const int max = 5;
int i;
A *a[max];
for(i=0;i<max;i++)
{
a[i] = new A(i);
}

for(i=0;i<max;i++)
{
cout<<"该类有: "<<A::total<<" 个对象。"<<endl;
cout<<"正在删除第: "<<a[i]->getIt() <<" 个对象。"<<endl;
delete a[i];
}
*/
//下句说明,静态变量在没有对象是就存在。

A a(2);
a.func() ;

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