」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何存取類別中定義的友元函數?

如何存取類別中定義的友元函數?

發佈於2024-11-25
瀏覽:919

How to Access Friend Functions Defined Within a Class?

存取類別中定義的友元函數

使用友元函數時,必須了解如何定義和存取它們。由於友元函數不是類別的成員,因此在類別外部存取它們可能需要特殊考慮。

在提供的程式碼片段:

class A {

public:
    friend void fun(A a){std::cout 

友元函數 fun() 和 fun3() 在類別中定義,但不在全域範圍中宣告。由於參數類型為 A,因此可以使用參數相關查找 (ADL) 直接存取 fun(),但如果沒有在全域範圍內聲明,則無法存取 fun2()。

要正確存取 fun2() ,除了在類別中定義為友元函數之外,還應該全域宣告它:

class A {

public:
    friend void fun(A a){std::cout 

在此修改版本中,fun2()可以作為普通函數在類別外部存取。

但是,建議以通常的方式定義友元函數,在類別外部但聲明作為朋友:

class A {
   friend void fun(A a);
   friend void fun2();
   friend void fun3();
};

void fun(A a) { std::cout 

此方法可確保正確定義和宣告所有友元函數,使它們按預期可存取和使用。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3