神秘的家伙this指针、运算符重载

1、为什么神秘?怎么定义?

我们通过一个典型的栗子来认识它

class Human
{
	char fishc;
	Human(char fishc);
};
Human::HUman(char fishc)
{
	fishc=fishc;
}
那么在fishc=fishc之前,所有的语法都没有任何问题
Human()构造器中有一个名为fishc的参数
虽然他与Human类里面的属性同名,但却是不相干的两样东西,所以并没有错

但是构造器并不知道 是要将传入的参数赋值给属性,还是将属性传给参数呢!
怎么样让构造器指导哪个是参数,哪个是属性呢?
这时候,我们用到了这个神秘的家伙
this指针!!!!

this->fishc=fishc
他用来指向当前对象的属性
那么编译器就懂了,赋值操作符的左边将被解释为当前对象的fish属性,右边为构造器传入来的参数。
如果代码不存在二义性隐患,就不必使用this指针!
this指针在一些高级的方法中也会用到,这里埋下伏笔!!!!

2、运算符重载 赋予新的含义

运算符重载的函数格式如下:
函数类型 operator 运算符名称(形参列表)
{
对运算符的重载处理
}
例如我们可以重载运算符+,如下:
Int operator+(int a,int b)
{
return(a-b);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值