klimi

导航

c++友元函数和友元类

友元函数就是在类里面声明一个函数
这个函数不属于这个类 而是类外部的函数
这个函数可以是一个普通的外部函数 也可以是一个别的类的成员函数
友元函数的特点 是他可以访问这个类的私有和保护成员和函数 而这在普通的外部函数中无法做到

友元函数不属于类内部函数 所以定义在类内部和定义在类外部没有区别

关于友元函数的声明 友元函数在类内的声明不是一个正式的声明 要想让类的成员函数调用友元函数 要在外部声明
class A {
public:
friend void fun() { //不是一个正式的声明 只是告诉编译器我有访问私有成员的权限

}
void test() {
    fun();//错误  因为fun还没有声明  因此不能调用
}

}

//正确做法
class A {
public:
friend void fun() { //不是一个正式的声明 只是告诉编译器我有访问私有成员的权限

}
void test();

}

void fun();//现在外部提前声明
void A::test(){
fun()
}

posted on 2020-11-08 14:17  ShawnMckeown  阅读(63)  评论(0编辑  收藏  举报