码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:blog   os   io   2014   amp   log   type   ios   

原与紫书。


#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

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

标签:blog   os   io   2014   amp   log   type   ios   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!