结构体与模板

结构体与模板


再谈结构体

C++中的结构体除了可以拥有成员变量之外,还可以拥有成员函数。下面是一个例子。

#include<iostream>
using namespace std;
struct Point
{
    int x,y;
    Point(int x=0,int y=0):x(x),y(y){}  //构造函数,括号内可以设默认值
};

Point operator +(const Point&A,const Point&B)  //重载运算符
{
    return Point(A.x+B.x,A.y+B.y);
}

模板

使用template<typename T>可以构造模板。
可以把上面的Point也变成模板,使其支持各种类型。

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 &A,const Point &B)
{
    return Point(A.x+B.x,A.y+B.y);
}
... ... ...