美文网首页
《C++ Primer Plus》:使用类

《C++ Primer Plus》:使用类

作者: Dragon_boy | 来源:发表于2020-07-29 17:00 被阅读0次

运算符重载

*运算符就是运算符重载的一个例子,可以用作乘法,也可以用于操作地址获取存储在地址中的值。

要重载一个运算符,可以这么写:

operatorop(argument-list)

op是运算符,比如operator+()重载+operator*()重载*

注意,重载运算符有限制:

  • 首先重载后的运算符必须至少有一个操作数是用户定义的类型。
  • 使用运算符不能违反运算符原有的句法规则,不能修改运算符的优先级。
  • 不能创建新运算符。
  • 不能重载下面的运算符:sizeof..*::?:typeidconst_castdynamic_castreinterpret_caststatic_case
  • 大多数运算符可以通过成员或非成员函数重载,但下面的只能通过成员函数重载:=()[]->

友元

C++控制对类对象私有部分的访问,通常,公有类方法提供唯一的访问途径,不过限制太大。C++提供了另一种形式的访问权限,友元:友元函数、友元类、友元成员函数。

友元函数使用friend关键字,在类中定义原型:

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

operator*()函数在类声明中声明,但它不是成员函数,因此不能使用成员运算符来调用,不过与成员函数的访问权限相同。

编写友元函数定义时,不使用类作用域,定义:

Time operator*(double m, const Time& t){}

相关文章

网友评论

      本文标题:《C++ Primer Plus》:使用类

      本文链接:https://www.haomeiwen.com/subject/bwfkrktx.html