类的 静态/常成员 及 友元

本文详细介绍了C++中的静态成员和友元函数的概念、使用方式及其特性,包括静态成员的定义、作用域、初始化以及友元函数与友元类的声明方法,并解释了它们如何在类的封装性和灵活性之间取得平衡。

静态成员:

//静态成员 
#include 
using namespace std;
class m_class1{
	private:
	static int a,b;
	int d;
	public:
	static int c;
	void fun(){//普通函数可以存取静态成员变量 
		a=100;
	}
	static void fun2(){
		a=11;//静态函数只能存取静态成员变量 
	}
};
int m_class1::a=1,m_class1::b=2,       \
m_class1::c=3;//初始化时不加static,以免与一般静态变量混淆 
int main( )
{
	m_class1 ob1;
	m_class1::c=123321;
    cout<

友元函数与友元类:

//友元函数与友元类 
#include 
using namespace std;
class m_class2;//类的声明 
class m_class1{
	private:
	int a;
	public:
	friend void fun1();//声明友元函数 
	friend class m_class2;//声明友元类
};
class m_class2{
	public:
	void fun1(m_class1 &A){
		A.a=123;
	}
};
int main( )
{
	fun1();
	m_class1 ob1;
	m_class2 ob2;
	ob2.fun1(ob1);
	return 0;
}

void fun1(){//友元函数不是类的成员函数 
	m_class1 oba;
	oba.a=1;//这里可以访问私有成员,权限如同类的成员函数 
}
/*类具有封装性,但有时封装的太厉害,使编程不够灵活,所以出现了友元这样的机制。 
若B类声明了友元类A,则A类的所有成员函数都是B类的友元函数。 
友元关系是单向的*/

常对象 与常成员

//常对象 与常成员 
#include 
using namespace std;
class m_class{
	const int a;
	int const b;
	static int c;
	int static d;
	int e; 
	public:
	m_class();
	void fun(){
		cout<

 只有类的常成员函数才能访问该类的常对象,但也只能读不能改。

常对象只能调用常成员函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值