易错知识点–友元函数

  • Post author:
  • Post category:其他




注意

1.友元函数不能继承

2.友元(类)函数没有this指针

3.友元函数破坏类的封装性

4.全局友元函数可以直接调用(而不需要借助对象或者指针



例子

class A;
class B
{
public:
    void fri_B(A a);
};

class A
{
    int n = 1;
public:
    friend void fri(A a); //全局函数友元
    friend void B::fri_B(A a); //类函数友元
};

void fri(A a)
{
    cout << "全局:";
    cout <<a.n;
    cout << endl;
}

void B::fri_B(A a)
{
    cout << "B:";
    cout <<a.n;
    cout << endl;
}

int main() {
    A a;
    fri(a);

    B b;
    b.fri_B(a);
    return 0;
}



版权声明:本文为weison_x原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。