在类中添加友元,相当于安插了一个卧底,可以访问类内元素,如下
class Box { double width; public: friend void printWidth(Box box); friend class BigBox; void setWidth(double wid); }; class BigBox { public : void Print(int width, Box &box) { // BigBox是Box的友元类,它可以直接访问Box类的任何成员 box.setWidth(width); cout << "Width of box : " << box.width << endl; } };
因为Box类中添加友类BigBox,所以BigBox可以访问Box类的任何成员
class Box { double width; public: friend void printWidth( Box box ); void setWidth( double wid ); }; // 成员函数定义 void Box::setWidth( double wid ) { width = wid; } // 请注意:printWidth() 不是任何类的成员函数 void printWidth( Box box ) { /* 因为 printWidth() 是 Box 的友元,它可以直接访问该类的任何成员 */ cout << "Width of box : " << box.width <<endl; }
因为Box类中添加友函数printWidth,所以printWidth可以访问Box类中的box.width成员
标签:友元,Box,函数,void,box,BigBox,width,printWidth From: https://www.cnblogs.com/toriyung/p/17153770.html