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

本文通过实例介绍了静态成员变量在类中的使用,并对比了公有和私有的访问区别。私有静态成员变量只能通过类的公有成员方法访问,而公有静态成员变量则可以直接从类外部访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于静态成员变量的二种访问权限的使用区别,一种是公有,一种是私有,访问的区别,见代码:


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

#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")	;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值