• 以非成员非友元替代成员函数


    面向对象要求数据应该尽可能的被封装,然而与直观相反,成员函数带来的封装性比非成员非友元要低。

    非成员函数可以允许函数有较大的包裹弹性。

    如果某些东西被封装,则不可见,不可见的东西越多则我们就有越大的弹性去变化他,因为我们改变的仅仅直接影响看到改变的那些人事物。

    另一方面如果非成员友元和成员函数机能相似,那么选择非成员友元会好些,因为他们并不增加访问私有成员变量的函数数量。

    namespace和classse访问的范围不同,前者可以跨越多个源文件。将所有便利函数放在多个头文件中,保证她们的命名空间相同,意味着客户可以轻松扩展这组便利函数,

    我们需要做的就是在这组命名空间中添加不同的非成员非友元函数。

    还有,若所有参数都需要类型转换的时候,我们希望采用非成员函数去完成。

    result=onehal*2;

    result=2*onehal;错误

    原因是:

    只有当参数被列于参数咧内,此参数才是隐式类型转换的合格者。第一次调用伴随一个凡在参数咧内的参数,但是第二次调用的时候并没。

  • 相关阅读:
    手把手教你安装系统-只需一个U盘
    Linux系统优化05-Centos修改主机名
    Linux系统优化06-Centos远程登录与连接(SSH配置)
    数据库ACID
    Java中的String,StringBuilder,StringBuffer三者的区别
    zookeeper的选举机制
    mysql的数据类型
    常用类(四)
    常用类(三)
    常用类(二)
  • 原文地址:https://www.cnblogs.com/8335IT/p/6739274.html
Copyright © 2020-2023  润新知