首页 > 代码库 > 利用结构体定义一个加法以及自定义输出
利用结构体定义一个加法以及自定义输出
原与紫书。
#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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。