再谈结构体

//示例
#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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【执珪】瑕瑜·夕环玦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值