类模板中的友元函数

今天写cpp的时候,忘记了类模板中的友元怎么用了
记录一下

  1. 先声明类模板,和友元函数
template  class Person2;
template  ostream & operator<<(ostream &os, Person2 &p);
template  void showPerson(Person2 &p);
  1. 类模板中声明友元函数
template 
class Person2 {
private:
    T id;
    T age;
public:
    Person2(T age, T id);

    friend ostream & operator<<(ostream &os, Person2 &p);
    friend void showPerson(Person2 &p);
};
  1. 类模板外实现
template 
Person2::Person2(T age, T id) {
    this->age = age;
    this->id = id;
}

template 
ostream & operator<<(ostream &os, Person2 &p) {
    cout << ">><<>><< -- " << p.id << " --- " << p.age << endl;
    return os;
}

template 
void showPerson(Person2 &p) {

}

如上


不定期更新 不合适的地方 还请指点~ 感激不尽

你可能感兴趣的:(类模板中的友元函数)