zoukankan      html  css  js  c++  java
  • 【23】宁以non-member、non-friend替换member函数

    1、non-member方法与member方法没有本质区别,对于编译器来说,都是non-member方法,因为member方法绑定的对象,会被编译器转化为non-member方法的第一个形参。non-member方法与member方法唯一的区别是:member方法封装性更差,因为它可以访问private成员。

    2、根据面向对象的要求,数据与方法应该和对象捆绑在一起,这意味着应该使用member方法。其实,这个建议是错误的。为什么?

    3、首先,non-member、non-friend方法提供更大的封装性。

    4、其次,考虑下面的需求,我只需要类中的一个方法。如果是member方法,必须把整个class定义包含进来,即使其他的接口我不使用。如果使用non-member方法,我只需要包含需要的方法声明就好了。因此,non-member降低编译的依赖关系。举例来说,member方法,需要一点东西也要把整个class包含进来,而整个class中又关联其他东西,导致当前需要的东西与其他东西的依赖。如果是non-member方法,相当于把整个class分成一个一个小块,需要那个小块,就包含哪个小块。这是因为class 的定义不能跨越多个源文件,而namespace可以跨越多个源文件。

  • 相关阅读:
    .net Core 配置Centos守护进程Supervisor
    .net Core 安装在linux上
    Mariadb Galera Cluster 搭建集群
    MariaDB 安装配置记录
    MariaDB 安装
    wso2 linux上部署说明
    RestFul 架构详解
    SpirngBoot之整合邮件服务
    SpringBoot之模板引擎
    SpringBoot之持久化框架
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3543414.html
Copyright © 2011-2022 走看看