友元函数类内实现
friend void printPerson( Person<T1 ,T2> & p )
友元函数类外实现
friend void printPerson<>(Person<T1, T2> & p); //没有<>普通函数 声明 加上 <>模板函数声明
让编译器看到 函数 并且看到这个Person类型
类内实现
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; template<class T1, class T2> class Person { //友元函数类内实现 friend void printPerson(Person<T1,T2> & p) //友元函数写再类内 默认就是全局函数 { cout << "姓名:" << p.m_Name << " 年龄: " << p.m_Age << endl; } public: Person(T1 name, T2 age) { this->m_Name = name; this->m_Age = age; } private: T1 m_Name; T2 m_Age; }; void test01() { Person<string, int> p("大圣", 500); printPerson(p); } int main() { test01(); system("Pause"); return 0; }
结果: