问题遇到的现象和发生背景 C++用模板输出double类型的结构体相加,为什么最后还是输出整数
用代码块功能插入代码,请勿粘贴截图
#include<iostream>
using namespace std;
template<typename T>
struct Point{
int x,y;
Point(T x=0,T y=0):x(x),y(y){}
};
template<typename T>
Point<T> operator +(const Point<T> &A,const Point<T> &B){
return Point<T> (A.x+B.x,A.y+B.y);
}
template<typename T>
ostream &operator<<(ostream &out,const Point<T> &p){
out<<"("<<p.x<<","<<p.y<<")";
return out;
}
int main(){
Point<double>d(1.1,2.2),e(3.3,4.4);
cout<<d+e<<endl;
return 0;
}
运行结果及报错内容 输出(4,6),不是double