C++友元函数的作用

1、友元的作用:

  (1)友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行了数据共享的机制;

2、友元的优点和缺点

  优点:提高程序的运行效率;

  缺点:破坏了类的封装性和数据隐藏性,导致程序的可维护性变差;

3、特点:

 (1)友元函数是可以直接访问类的私有成员的非成员函数;

 (2)友元函数是定义在类外的普通函数,它不属于任何类;

   (3) 一个函数可以是多个类的友元函数;

4、使用场景

 (1)运算符重载的某些情况会使用友元;

   (2) 两个类要共享数据的时候;

#include "pch.h"
#include <iostream>

using namespace std;

class Person
{
private:
	double dbHeight;
	int nAge;
public:
	Person(double dbHeight, int nAge);
	void show();
	friend void setAge(Person &p);
 };

Person::Person(double dbHeight, int nAge)
{
	this->dbHeight = dbHeight;
	this->nAge = nAge;
}
void Person::show()
{
	cout << "身高:" << dbHeight << endl;
	cout << "年龄:" << nAge << endl;
}
void setAge(Person &p)//非成员函数设置为友元函数,修改数据成员的值
{
	p.nAge = 10;
}
int main()
{
	Person person1(180,18);
	setAge(person1);
	person1.show();
}

  

猜你喜欢

转载自www.cnblogs.com/dingou/p/10336273.html