赞
踩
取地址成员函数也是’‘类的六大默认成员函数’'之一。其分为两种,普通取地址操作符、const取地址操作符。
取地址是什么意思呢?就是返回当前对象的地址,对于成员函数来讲,this指针就是它的地址,需要返回指针。
将’’&’'重载为成员函数时,是否需要传参?
Date* operator&() {
}
‘’&’’ 运算符是一个单目运算符,其只有一个参数,而这个参数就是一个对象,所以说这个对象是不用传的,定义为成员函数时函数参数就应该少一个,第一个函数参数就被this指针所代替。所以,在此不需要进行传参。
class Date { public : Date* operator&() { return this ; } const Date* operator&()const { return this ; } private : int _year ; // 年 int _month ; // 月 int _day ; // 日 };
这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载,比如想让别人获取到指定的内容!
如果不写这两个函数的时候,若无其它操作完全够用了,因为这两个函数只返回this指针,也没有其他的操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。