类模板中的友元函数

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

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

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

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

template <class T>
void showPerson(Person2<T> &p) {

}

如上


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容