類模板配合友元函式的類內和類外實現
全域性函式的類內實現-----直接在類內生命友元即可
全域性函式的類外實現-----需要提前讓編譯器知道全域性函式的存在
#include using namespace std;
#include//通過全域性函式來列印person的資訊
//提前讓編譯器知道person類存在
templateclass person;
//類外實現
templatevoid printperson2(personp)
templateclass person
//全域性函式的類外實現
//加空模板的引數列表
//如果全域性函式是類外的話,需要讓編譯器提前知道這個函式的存在
friend void printperson2<>(personp);
public:
person(t1 name, t2 age)
private:
t1 m_name;
t2 m_age;
};//1.全域性函式在類內實現
void test01()
//2.全域性函式在類外的實現
void test02()
int main()
建議:建議全域性函式做類模板內實現,用法簡單,而且編譯可以直接識別。 友元與模板類
友元成員函式模板 include using namespace std templateclass a 當用到友元成員函式時,需注意友元宣告與友元定義之間的互相依賴。這是類a的宣告 templateclass b template a的這個t決定了對於b的t型別友元,並且只友元a型別 class ...
16 2 8 類模板與友元
這裡為了測試友元函式,所以將person類的屬性設定為私有。1 全域性函式類內實現 這裡有乙個全域性函式做友元,用來輸出person的資訊。include include using namespace std template classt1,class t2 class person publi...
C 提高9 類模板與友元
掌握類模板配合友元函式的類內和類外實現 先來乙個類內實現的例子 include include using namespace std template classt1,class t2 class person public person t1 name,t2 age 令成員私有化 private...