首页 > 其他分享 >设计与声明

设计与声明

时间:2023-08-20 09:34:03浏览次数:27  
标签:non reference value member pass 设计 声明 class

  • 让接口容易被正确使用,不易被误用
  1. 任何接口如果要求客户记得做某些事情,就是有着“不正确使用”的倾向。
  • 设计class犹如type
  1. C++ 就像在其他OOP语言一样,当你定义一个新class,也就定义了一个新type。身为C++程序员,你的许多时间主要用来扩张你的类型系统。这意味着你不只是class设计者,还是type设计者。重载函数和操作符,控制内存的分配和归还,定义对象的初始化和终结等都在你的手上。因此你应该带着和“语言设计者当初设计语言内置类型时”一样的谨慎来研讨class的设计。
  • 宁以 pass-by-reference-to-const 替换 pass-by-value
  1. reference 往往以指针实现出来,因此pass by reference 通常意味着传递的是指针。因此如果你有个对象属于内置类型pass by value方式可能被选择。规则的改变取决于你使用哪一部分c++
  2. 尽量以pass by reference to const 替换 pass by value 。前者通常比较高效,并可避免切割问题。
  3. 对于内置类型,STL迭代器,函数对象,pass by value 往往比较适当。
  • 必须要返回对象时,别妄想返回其reference
  1. 绝不要返回pointers或reference指向一个local stack对象,或返回reference 指向一个heap-allocated对象,或返回pointer 或 reference 指向一个local static对象而有可能同时需要多个这样的对象。
  • 将成员变量声明为private
  1. 从封装的角度观之,其实只有两种访问权限,private 和 其他。
  • 宁以non-member  non-friend 替换member函数
  1. 愈少的代码可以访问数据,愈多东西被封装
  • 若所有参数都需要类型转换,请为此采用non-member 函数
  1. 如果你需要为某个函数的所有参数进行类型转换(包括this指针所指的那个隐喻参数),那么这个函数必须是个non_member。

标签:non,reference,value,member,pass,设计,声明,class
From: https://www.cnblogs.com/wuyun--wy/p/17210513.html

相关文章

  • 读发布!设计与部署稳定的分布式系统(第2版)笔记33_混沌工程
    1. 康威定律1.1. 梅尔文·康威1.1.1. MelvinConway1.1.2. 1968年1.1.3. 在设计系统时,组织受制于其自身的沟通结构,这使得它设计的系统结构与沟通结构相一致。1.1.3.1. 社会学现象1.2. 要在系统内部或系统之间构建接口,两个人必须以某种方式沟通有关该接口的规范1.2.......
  • 设计模式-单例模式
    饿汉式/***饿汉式,类加载的时候就会初始化**问题:*1.通过反射可以破坏单例*2.通过反序列化破坏单例*3.通过Unsafe破坏单例,无法解决**@author:optimjie*@date:2023-08-1921:37*/publicclassSingleton1{privateSingleton1()......
  • 设计模式串讲
    BehavioralDesignPatterns行为模式行为模式负责对象之间的高效沟通和职责委派,这些模式刻画了运行时难以跟踪的复杂控制流,从而把开发者的注意力从控制流转移到对象间的联系方式上。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。行为类模式使用继承机制在类间分派......
  • 1-3分支程序设计实验
    .MODELTINY.STACK100.DATATAB_1:DB0H,5H,6H,3H,8H,92H,04H,57H,46H,01H,0FFH,0A0H,45H,99H,55H,66H.CODESTART:MOVAX,@DATAMOVDS,AXNOPMOVCX,16-1 ;存放比较次数=数据个数-1STAR2:PUSHCXLEASI,TAB_1MOVDL,0 ;0->交换过数据标志......
  • 基于springboot图书个性化推荐系统的设计与实现
    本论文主要论述了如何使用JAVA语言开发一个图书个性化推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述图书个性化推荐系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分......
  • 领域驱动设计(DDD):从基础代码探讨高内聚低耦合的演进
    大家好,我是付威,一名已在编码第一线奋斗了十余年的程序员。在2019年我初次接触到领域驱动设计(Domain-DrivenDesign,简称DDD)的概念。在我的探索中,我发现许多有关DDD的教程过于偏重于战略设计,充斥着许多晦涩难懂的概念,导致阅读起来相当艰难。有些教程往往只是解释了DDD的概念,而未深入......
  • 基于JAVA+hadoop网络云盘上传下载系统-计算机毕业设计源码+LW文档
    摘 要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。网络云盘能够为广大用户提供安全、免费、方便的存储空间,还能实现资源的共享,但是网络云盘还是存在不足,如何为用户提供更简单明了、便于操作的云盘空间就......
  • 高等学校国防教育教学素材管理系统-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工劳动的弊端。我国政府一直以来都非常重视国防教育事业的发展,近几年来高校学生人数逐渐增加,学校对图书馆国防教育教学素材信息、借阅信息的管理也愈发的困难。因此,高校提......
  • 中学生考试管理系统的设计与实现-计算机毕业设计源码+LW文档
    摘要随着信息技术的发展,管理系统越来越成熟,各种企事业单位使用各种类型的管理系统来提高工作效率,从而降低手工操作的弊端。我国政府一直以来都非常重视中学阶段教育的发展,近几年来学生人数逐渐增加,对在线考试的需求越来越多。因此,通过开发中学生考试管理系统来提高学习效率,增强考......
  • 基于SSM技术的心理学网站系统设计与实现-计算机毕业设计源码+LW文档
    一、选题背景及意义随着信息化社会的形成和微电子技术日新月异的发展,为开发心理学网站系统提供了良好的环境。在当前的技术和社会需求环境下,心理学网站系统将具有长足的发展。特别是在互联网高度发展和应用的今天,随着心理关爱需求的越来越多,也正因此,心理学网站系统应运而生,可以为......