友元函数

:::info 友元函数是一种特权函数,c++允许这个特权函数访问私有成员。

  • 可以把一个全局函数、某个类中的成员函数、甚至整个类声明为友元
    ::: ``` Class Triangular_iterator{ public: Triangular_iterator(int index):_index(index){}; int operator(const Triangular_iterator &rhs); private: int _index; void check_intergrity() const; }; Triangular_iterator:: operator(const Triangular_iterator &rhs){ rhs.check_intergrity(); return Triangular::_elems[_index]; }

Class Triangular{ public: friend int Triangular_iterator::operator*(); private: static vector _elem; }; ```

小结

  • 通过将类、全局函数、成员函数声明为友元,可以实现类外访问类内成员;
  • 友元函数是出于效率考虑的;