模板類宣告友元函式

2021-09-19 03:33:47 字數 336 閱讀 6233

問題描述:如題,先看不報錯的**如

templateclass test

template//2

void fun(test& data)

因為需求傳遞需要函式指標,通過fun函式對類內私有成員進行操作。

如果定義類內成員fun,則需要修改傳參。但是非要用友元函式怎麼辦呢。

如果有1沒有2,則報錯:成員無法訪問

如果沒有1有2,則報錯:無法解析的外部命令

如果沒有1沒有2,則報錯:重定義

修改參考:

還有很多修改的方法

順帶,如果考慮模板類的派生,則:

類模板中的友元宣告

有三種友元宣告可以出現在類模板中 1 非模板友元類或友元函式。在下面的例子中,函式foo 成員函式bar 以及foobar類都是類模板queueitem的所有例項的友元。class foo templateclass queueitem 上面的例子中,注意第三條,在queueitem類把foo類的乙...

模板類的 友元模板函式

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 include include usingnamespacestd template classt c...

模板類的 友元模板函式

模板類的 友元模板函式 第二名 12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 include include usingnamespacestd te...