C++基础(3)——[使用类]

  1. 运算符重载,需使用被称为运算符函数的特殊函数形式。运算符函数的格式如下:

operatorop(argument-list)

//例如operator+() 重载+运算符;operator*() 重载*运算符;

//op必须是有效的C++运算符,不能虚构一个新的符号。

  1. C++对用户定义的运算符重载的限制:
  • 重载后的运算符必须至少有一个操作数是用户定义的类型,这是防止用户为标准类型重载运算符。

  • 使用运算符时不能违反运算符原来的句法规则。不能修改运算符的优先级。

  • 不能创建新运算符。

  • 不能重载下列运算符

    • sizeof:sizeof运算符

    • . :成员运算符

    • .* : 指针成员运算符

    • :: :作用域解析运算符

    • ?: :条件运算符

    • typeid:一个RTTI运算符

    • const_cast :强制类型转换运算符

    • dynamic_cast : 强制类型转换运算符

    • reinterpret_cast : 强制类型转换运算符

    • static_cast : 强制类型转换运算符

  1. 通过让函数成为类的友元,可以赋予该函数与类的成员函数相同的访问权限。

  2. 创建友元函数的第一步是将其原型放在类声明中,并在原型声明前加上关键字friend:

friend Time operator*(double m,const Time &t);

-  虽然operator*()函数是在类声明中声明的,但它不是成员函数,因此不能使用成员运算符来调用;

-  虽然operator*()函数不是成员函数,但它与成员函数的访问权限相同。

第二步是编写函数定义。不是成员函数所以不要使用Time::限定符。不要在定义中使用关键字friend。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值