首頁  >  文章  >  後端開發  >  C++ 函式的友元機制詳解

C++ 函式的友元機制詳解

WBOY
WBOY原創
2024-04-18 11:15:021109瀏覽

C 友元機制允許非成員函數或類別存取其他類別的私有或保護成員,以實現以下目的:允許非成員函數存取私有成員允許成員函數存取其他類別的私有成員允許類別成員函數存取另一個類別的私有成員

C++ 函数的友元机制详解

C 函數的友元機制詳解

友元機制是一種允許函數或類別存取其他類別或函數的私有或保護成員的特徵。在C 中,友元機制可以實現以下目的:

  • 允許非成員函數存取類別的私有成員
  • 允許類別的成員函數存取另一個類別的私有成員

語法

  • 全域函數友元宣告:

    friend 返回值类型 函数名(参数列表);
  • 類別友元宣告:

    friend class 类名;
  • 類別成員函數友元宣告:

    friend 返回值类型 类名::成员函数名(参数列表);

實戰案例:

問題:設計一個Point 類,它有私有成員xy ,並且有一個列印所有私有成員的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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn