类模板中重载ostream左移操作符

  1. 重载左移操作符
#include <QDebug>
#include <iostream>
using namespace std;

template<class T>
class ClassTemplate2
{
public:
    ClassTemplate2(T name, T age);
    void Show();
    //重载左移操作符
    template<class T>
    friend ostream& operator<<(ostream& os, ClassTemplate2<T>&p);
private:
    T m_name;
    T m_age;
};
  1. 实现左移操作符
template<class T>
ostream& operator<<(ostream& os, ClassTemplate2<T>&p)
{
    os << "name = " << p.m_name << ", age = " << p.m_age;
    return os;
}
  1. 调用左移操作符
ClassTemplate2<int> ct(10,20);
cout << ct;
  1. 测试结果
    在这里插入图片描述

  2. 注意事项
    在linux 系统下,声明需要修改为

friend ostream& operator<<<T>(ostream& os, ClassTemplate2<T>&p);

猜你喜欢

转载自blog.csdn.net/mafucun1988/article/details/88903695