BZ易风

导航

 

友元函数类内实现

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;
}

结果:

 

posted on 2021-08-24 17:43  BZ易风  阅读(65)  评论(0编辑  收藏  举报