zoukankan      html  css  js  c++  java
  • 改善程序与设计的55个具体做法 day9

    条款23:宁以non-member、non-friend替换member函数

    即 以非成员函数 非友元函数 替换成员函数。

    直观上,面向对象应该尽可能的封装,封装数据、封装操作等等,所以这个条款可能有悖常理。

    比如一个类成员函数CObj::Func(){ Dosomething(); }

    该函数会调用其他成员函数做一点微小的工作,想一下把成员函数换成普通函数Func2(const CObj& obj);

    Func2(const CObj& obj)

    {

        obj.Dosomething();

    }

    看,非成员、非有缘函数也可以做到,而且【非成员 非友元函数 不会访问到类的其他成员, 这样会更少的机会犯错】。

    然而,该【非成员 非友元函数 仍然可以是其他类的成员函数或友元函数】 

    当程序组织的形式上,可以把该 函数 和 该类 放在同一个命名空间下。

    系甘啦。

  • 相关阅读:
    Redis-持久化
    Redis-Sort命令
    Redis-ZSet常用命令
    Redis-Hash
    Redis-Set常用命令
    Redis-List常用命令
    Redis-String常用命令
    访问控制
    c++之旅:多态
    c++之旅:类型的强制转换
  • 原文地址:https://www.cnblogs.com/cuish/p/5944103.html
Copyright © 2011-2022 走看看