类模板中实现全局函数
类内实现
#include <iostream>//标准输入输出流头文件
using namespace std;//标准命名空间
#include<string>//
template <class N,class A>//声明一个类模板
class Person
{
friend void print1(Person<N,A> p)//全局函数类内实现
{
cout << "姓名:"<< p.m_name << "年龄:"<< p.m_age << endl;
}
public:
Person(N name,A age)
{
this->m_name = name;
this->m_age = age;
}
private:
N m_name;
A m_age;
};
void test01()//测试函数
{
string a = "Tom";
int b = 3;
Person<string,int> p1(a,b);
print1(p1);
}
int main()
{
test01();
system("pause");
return 0;
}
类外实现:
//在头文件后类模板前定义以下信息
template <class N,class A>//声明一个类模板
class Person;
template <class N,class A>
friend void print1(Person<N,A> p)
{
cout << "姓名:"<< p.m_name << "年龄:"<< p.m_age << endl;
}
最近杂事烦心事有些多,但也要抽空学C++知识,万不可半途而废。
小白学习中,欢迎交流指正!