c++中模板与重载

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

template<typename T>
T sum(T *begin, T *end){
	T *p = begin();
	T ans = 0;
	for(T *p;p!=end;p++)
		ans = ans + *p;
	return ans;
}

template<typename T>
struct Point{
	T x,y;
	Point(T x=0, T y=0){this->x = x; this->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>
bool operator<(const Point<T> &a, const Point<T> &b){
	if(a.x<b.x || (a.x==b.x && a.y<b.y))
		return true;
	return false;
}

template<typename T>
ostream& operator << (ostream &out, const Point<T> &a){
	out<<"("<<a.x<<","<<a.y<<")";
	return out;
}
int main(){
	Point<int> a(1,2),b(3,4);
	Point<double> c(1.1,2.2),d(3.3,4.4);
	cout<<a+b<<"  "<<c+d<<endl;
	cout<<"hello,world"<<endl;
	return 0;
}

/*
C:\Users\kepcum\Desktop>g++ test.cpp -o test.exe

C:\Users\kepcum\Desktop>test.exe
(4,6)  (4.4,6.6)
hello,world
*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值