C 友元機制允許非成員函數或類別存取其他類別的私有或保護成員,以實現以下目的:允許非成員函數存取私有成員允許成員函數存取其他類別的私有成員允許類別成員函數存取另一個類別的私有成員
C 函數的友元機制詳解
友元機制是一種允許函數或類別存取其他類別或函數的私有或保護成員的特徵。在C 中,友元機制可以實現以下目的:
語法
全域函數友元宣告:
friend 返回值类型 函数名(参数列表);
類別友元宣告:
friend class 类名;
類別成員函數友元宣告:
friend 返回值类型 类名::成员函数名(参数列表);
實戰案例:
問題:設計一個Point
類,它有私有成員x
和y
,並且有一個列印所有私有成員的print()
函數。現在,我們想要一個額外的 printInfo()
函數,它可以存取 Point
類別的私人成員並列印它們。
實作:
// Point 类 class Point { private: int x; int y; public: // 友元函数,可以访问 Point 类的私有成员 friend void printInfo(Point& point); // Point 类的成员函数 void print() { std::cout << "x: " << x << ", y: " << y << std::endl; } }; // 全局友元函数,可以访问 Point 类的私有成员 void printInfo(Point& point) { std::cout << "x: " << point.x << ", y: " << point.y << std::endl; } int main() { Point point{10, 20}; point.print(); // 输出:x: 10, y: 20 printInfo(point); // 输出:x: 10, y: 20 return 0; }
以上是C++ 函式的友元機制詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!