C++学习之友元函数和友元类
作者:互联网
目录
一、前言
主要介绍C++中的友元函数和友元类。
二、友元函数
1. 介绍
友元函数定义在类的外部,通过友元函数可以在类的外部修改类的私有属性,可理解为该函数是类的好朋友。类中,声明友元函数的关键字为friend,声明的位置和public或private 无关。具体示例代码如下。
2. 示例代码
#include "iostream"
using namespace std;
class A
{
public:
friend void modifyA(A *pA,int _a);//友元函数
A(int a,int b)
{
this->a = a;
this->b = b;
}
int getA()
{
return this->a;
}
protected:
private:
int a;
int b;
};
void modifyA(A *pA,int _a)
{
pA->a = _a;
}
void main()
{
A a1(1,2);
cout << a1.getA()<<endl;
modifyA(&a1,10);
cout << a1.getA()<<endl;
cout << "hello..."<< endl;
system("pause");
}
三、友元类
1. 介绍
若B类是A类的友元类,则B类的所有成员函数都是A的成员函数,通过B类成员可以访问A类的私有成员。友元类通常设计为一种对数据操作或类之间传递消息的辅助类。
使用方法:
在A类中声明友元类名:
friend class B
在B类中定义A类:
A aObj
2. 示例代码
#include "iostream"
using namespace std;
class A
{
public:
friend class B;//友元类 在B中可以访问A的私有成员 私有变量
A(int a=0,int b=0)
{
this->a = a;
this->b = b;
}
int getA()
{
return this->a;
}
protected:
private:
int a;
int b;
};
class B
{
public:
void Set(int a)
{
Aobject.a = a;
}
void printB()
{
cout << Aobject.a << endl;
}
protected:
private:
A Aobject;
};
void main()
{
B b1;
b1.Set(20);
b1.printB();
cout << "hello..."<< endl;
system("pause");
}
标签:友元,函数,示例,之友,void,C++,int,友元类 来源: https://blog.csdn.net/Bixiwen_liu/article/details/114678033