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);
}