首页 > 其他 > 详细

利用结构体定义一个加法以及自定义输出

时间:2014-08-11 18:04:12      阅读:401      评论:0      收藏:0      [点我收藏+]

原与紫书。


#include<cstdio>
#include<string>
#include<cmath>
#include<queue>
#include<vector>
#include<sstream>
#include<cstring>
#include<stdlib.h>
#include<iostream>
#include<algorithm>

using namespace std;

struct Point
{
    int x, y;
    Point( int x=0, int y=0 ) : x(x), y(y){} 
    //相当于Point( int x=0, int y=0 ) { this->x = x, this->y = y; }
};

Point operator + ( const Point& A, const Point& B )
{
    return Point( A.x+B.x, A.y+B.y );
}

ostream& operator << ( ostream &out, const Point& p )
{
    out << "(" << p.x << "," << p.y << ")";
    return out;
}

int main()
{
    Point a, b(1, 2);
    a.x = 3;
    cout << a+b << endl;
    return 0;
}


模板:




#include<cstdio>
#include<string>
#include<cmath>
#include<queue>
#include<vector>
#include<sstream>
#include<cstring>
#include<stdlib.h>
#include<iostream>
#include<algorithm>

using namespace std;

template <typename T>
struct Point
{
    T 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<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;
    return 0;
}





利用结构体定义一个加法以及自定义输出,布布扣,bubuko.com

利用结构体定义一个加法以及自定义输出

原文:http://blog.csdn.net/u013487051/article/details/38493281

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!