序言
这章主要是讲解C++中友元,其中友元包括友元函数与友元类。它的主要作用是可以访问类中已隐藏或者封闭的私有或者保护的数据成员或者函数。
关于友元其特性:
(1) 友元关系不能被继承。
(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明
友元函数
- 友元函数是独立于类的外部函数
#include <QString>
#include <QDebug>
class Girl
{
public:
Girl(QString name, int age);
friend void showInfo(Girl&);
private:
QString m_name;
int m_age;
};
void showInfo(Girl &girl);
#include "girl.h"
Girl::Girl(QString name, int age)
{
m_name = name;
m_age = age;
}
void showInfo(Girl &girl)
{
qDebug() << " name = " << girl.m_name << " age = " << girl.m_age;
}
结果: