友元函数与友元类
友元利弊: 友元不是类的成员但能访问类中的私有成员。友元的作用在于提高程序的运行效率,但也破坏了类的封装。 注意事项: (1)友元关系不能被继承; (2)友元关系是单向的,不具有交换性; (3)友元关系不具有传递性; 一、友元函数 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员 尽管友元函数的原型有在类的定义中出现过,但是 友元函数并不是成员函数 this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象 友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针 1. 友元函数是全局函数 class A { friend void printA(const A &a); public: void printA(); private: string name {"C++"}; int id {1024}; }; void A::printA(){ cout << "name = " << this->name << "\tid = " << this->id << endl; } // 请注意:printA() 不是任何类的成员函数 void printA(const A &a){ cout << "name = " << a....