• 再读c++primer plus 006


    使用类:

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

                         (2)使用运算符时不能违反运算符原来的语法规则,不能修改运算符的优先级

                         (3)不能创建新运算符

                         (4)不能重载下面的运算符:

                               .:成员运算符

                              sizeof

                               .*:成员指针运算符

                               :::作用域解析运算符

                               ?::条件运算符

                               typeid:一个RTTL运算符

                               const_cast :强制类型转换运算符

                               dynamic_cast:强制类型转换运算符

                                reinterpret_cast:强制类型转换运算符

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

                             (5)=,(),[ ],->只能通过成员函数进行重载

    2.友元

    (1)创建友元的第一步是将其原型放在类声明中,并在其前加上friend

    第二步编写函数定义,因为它不是成员函数,所以不用使用::

    (2)友元是否有悖于OOP:只有类声明可以决定哪一个函数是友元,因此类声明仍然控制了哪些函数可以访问私有数据,总之,类方法和友元只是表达类接口的两种不同机制

    3.类的自动和强制类型转换

    (1)隐式转换:程序将使用构造函数来创建一个临时对象并将值赋给它,随后采用逐成员赋值方式将该临时对象的内容赋值到待转换的对象。

    (2)将构造函数用作自动类型转换函数似乎是一项不错的特性,然而,当程序员拥有更丰富的c++经验时,将发现这种自动特性并非总是合乎需要的,因为这将导致意外的类型转换,因此c++新增了关键字explicit用于关闭这种特性,这么声明的函数将只用于显示强制类型转换,否则还可以用于隐式类型转换。

    (3)转换函数:转换函数是用户定义的强制类型转换,可以像使用强制类型转换那样使用它们

    转换函数必须是类方法,转换函数不能指定返回类型,转换函数不能能有参数。

                                

  • 相关阅读:
    【2】KNN:约会对象分类器
    Android学习笔记_69_android 支付宝之网页支付和快捷支付
    风吹过你走的那一刻,带走了你最后的足印,抹拭了我唯一追寻的方向
    The connection to adb is down, and a severe error has occured.
    RSA加密算法
    Android动画之translate(位移动画)
    Android学习笔记_68_ android 9patch 图片
    android:TableLayout表格布局详解
    Android 中 shape 图形的使用
    Android学习笔记_67_Android MyCrashHandler 中异常处理 UncaughtExceptionHandler
  • 原文地址:https://www.cnblogs.com/mcyushao/p/9188059.html
Copyright © 2020-2023  润新知