今天写cpp
的时候,忘记了类模板中的友元怎么用了
记录一下
- 先声明类模板,和友元函数
template <class T> class Person2;
template <class T> ostream & operator<<(ostream &os, Person2<T> &p);
template <class T> void showPerson(Person2<T> &p);
- 类模板中声明友元函数
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);
};
- 类模板外实现
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) {
}
如上
不定期更新 不合适的地方 还请指点~ 感激不尽
网友评论