C++ 友元应用

我是C++初学者,重温了一下友元,发现友元主要应用在这几点,而平时也不会多用,因为代码一多会忘记当初类、外部/成员函数之间的友元关系,用着方便,重温代码就麻烦许多,这些就当是了解概念。

友元主要应用在:1外部函数;2类的成员函数;3类与类之间的友元。

1在类中使用友元函数实现对外部函数的引用

如:

class MyClass
{
public:
friend void setNum(int num);  //外部函数用做友元函数
MyClass(){};
~MyClass(){};

protected:
int num;
};

void setNum(int num)

{

~~~~~

}

2在类中使用友元函数实现对其他类的成员函数的引用

如:

//===============

class B
{
public:
int add(A &a);
private:
int _numa;
int _numb;
};

//==============

int B::add(A &a)
{
return a.numa+a.numb;
}

//==============

class A
{
public:
friend int B::add(A &a);
void setNum(int a, int b)
{
numa = a ;
numb = b ;
}
private:
int numa;
int numb;
};

3友元类

如:

class A
{
public:
friend class B;
//friend int B::add(A &a);
void setNum(int a, int b)
{
numa = a ;
numb = b ;
}
private:
int numa;
int numb;
};


友元函数破坏了类的封装性,对初学者来说,尽量少用,因为难驾驭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值