友元(friend)

友元

  • 友元可以直接拿数据,而不需要通过函数。拿数据的动作就像成员函数一样。
class A {
private:
    int a, b;

public:
    ...

    int getA() const { return a }

    //声明友元
    friend void foo(A& value);
};


// 没有加 A:: 说明不是 A 的成员函数。
void foo(A& value) {
    cout << value.a;
}

  • 相同 class 的各个 object 互为友元
class A {
private:
    int a;
public:
    // 可以这么做
    void foo(const A& tmp) {
        cout << tmp.a;
    }

};

A a1, a2;

a1.foo(a2);

你可能感兴趣的:(友元(friend))