將普通函式宣告為友元函式

2022-06-27 09:03:13 字數 680 閱讀 6845

1

//display 是乙個 是類外定義的 並且 沒有用 time 類進行限定的函式 , 它 是 非成員函式 ,不屬於任何類2//

如果沒有 在time類的定義體中 宣告display 函式為 friend 函式 他是不能引用 time中的私有成員 hour minute sec的3//

現在由於生命了 display 是time類 friend 函式 所以 display 函式可以引用 time 類中的 hour minute sec 但注意在引用這些私有成員的時候 必須加上物件名 4//

因為 display 不是 time 類的成員函式 他們之間是 friend(朋友關係) 沒有 this指標' 是不能預設引用 time類的 成員資料的

5 #include6

using

namespace

std;

7class

time8;

17 time::time(int h,int m,int s) //

定義建構函式 , 給hour minute sec賦初值

1823

void display(time &t) //

這是 普通的函式 ,形參t 是 time類物件的 引用

2427

intmain()

28

怎樣把函式模板宣告為類模板的友元

怎樣把函式模板宣告為類模板的友元 給類模板宣告友元的函式模板有三種方式,分別為 第一種方式,在模板類內部宣告友元的函式模板 第二種方式,在模板類內部宣告對應版本的友元函式模板例項化 需要前置宣告 這種方式是最為合理的方式 第三種方式,在模板類內部直接宣告友元函式,不涉及函式模板 這種情況只能在模板類...

模板類宣告友元函式

問題描述 如題,先看不報錯的 如 templateclass test template 2 void fun test data 因為需求傳遞需要函式指標,通過fun函式對類內私有成員進行操作。如果定義類內成員fun,則需要修改傳參。但是非要用友元函式怎麼辦呢。如果有1沒有2,則報錯 成員無法訪問...

何時將析構函式宣告為私有?

參考 當我們將析構函式宣告為私有時,就意味著析構函式只能在類域中被呼叫,無法被外界 包括自己的物件 呼叫。表現為 1.禁止使用者對此型別的變數進行定義,即禁止在棧記憶體空間內建立此型別的物件。要建立物件,只能用 new 在堆上進行。2.禁止使用者在程式中使用 delete 刪除此型別物件。物件的刪除...