zoukankan      html  css  js  c++  java
  • 以非成员非友元替代成员函数

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

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

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

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

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

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

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

    result=onehal*2;

    result=2*onehal;错误

    原因是:

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

  • 相关阅读:
    STM32F2系列系统时钟默认配置
    在电源上叠加一个脉冲信号,模拟一个干扰信号
    const用法
    指向指针的指针
    Judge Route Circle
    汉明距离
    绘制三角形
    OpenGL工作流程
    OpenGL环境搭建
    next()方法 执行下一个中间件 类似than
  • 原文地址:https://www.cnblogs.com/8335IT/p/6739274.html
Copyright © 2011-2022 走看看