//示例
#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);
}
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;
}
结构体Point中定义了一个函数,函数名也叫Point,但没有返回值。这样的函数称为构造函数(ctor)。
构造函数是声明变量时调用的,例如,声明Pointa,b(1,2)时,分别调用了Point()和Point(1,2)。注意这个构造函数的两个参数后面都有“=0”字样,其中0为默认值。即若未指明这两个参数的值,按0处理,因此Point()相当于Point(0,0)。“x(x),y(y)”则是一个简单的写法,表示把成员变量x初始化为参数x,也可以写成:Point(int x,int y=0){this->x=x,this->y=y;}
this是指向当前对象的指针。this->x的意思是当前对象的成员变量x,即`(*this).x