C++语言设计规则

目标

  • C++应该使认真的程序员能够觉得编程序变得更愉快了
  • C++是一种通用的程序设计语言,它应该
    • 是一种更好的C
    • 支持数据抽象
    • 支持面向对象的程序设计

一般性规则

  • C++的发展必须由实际问题推动
  • 不被牵涉到无益的对完美的追求之中
  • C++必须现在就是有用的
  • 每个特征必须存在一种合理的明显实现方式
  • 总提供一条转变的通路
  • C++是一种语言,而不是一个完整的系统
  • 为每种应该支持的风格提供全面支持
  • 不试图去强迫人做什么。

设计支持规则

  • 支持健全的设计概念
  • 为程序的组织提供各种机制
  • 直接说出你的意思
  • 所有特征都必须是能够负担的
  • 允许一个有用的特征比防止各种错误使用更重要
  • 支持从分别开发的部分除法进行软件的组合

语言的技术性规则

  • 不隐式地违反静态类型系统
  • 为用户定义类型提供与内部类型同样好的支持
  • 局部化是好事情
  • 避免顺序依赖性
  • 如有疑问,就选择该特征最容易说清楚的形式
  • 语法是重要的(常以默写我们不希望的方式起作用)
  • 清除使用预处理程序的必要性

低级程序设计支持规则

  • 使用传统的(笨)连接器
  • 没有无故的与C的不兼容性
  • 在C++下面不为更低级的语言留下空间(除汇编语言之外)
  • 对不用的东西不需要付出代价(零开销规则)
  • 遇到有疑问的地方就提供手工控制的手段
时间: 2024-08-26 19:55:20

C++语言设计规则的相关文章

5 个关于 API 中日期和时间设计规则

规则 #1 使用ISO-8601格式作为你的日期格式 ISO 8601 解决了很多问题,包括: 自然排序 - 简单和优雅,免去多余的工作即可实现排序 时区偏移 - 代表用户的地点和时区在日益增长的全球化和移动世界中越来越重要. 地区中立性 - 想象一下噩梦一般的日期 2/3/4.这个日期随着你所处美国,欧洲或者其他地方而有不同的含义...这个日期在美国代表Feb 3, 2004,或者在其他地方代表Mar 2, 2004.在ISO 8601条款中,2004-02-03去掉了这些含糊的可能性. 在不

Java-面向对象三大特征、设计规则

1)封装: 1.1)类:封装的是对象的属性和行为 1.2)方法:封装的是具体的业务逻辑实现 1.3)访问控制修饰符:封装的是访问的权限 2)继承: 2.1)作用:代码的复用 2.2)父类/基类:共有的属性和行为 子类/派生类:特有的属性和行为 2.3)子继承父之后,子具有:父+子 2.4)传递性.单一继承,多接口实现 3)多态: 3.1)意义:行为的多态.对象的多态 3.2)向上造型.强制类型转换.instanceof判断 3.3)多态的表现形式: 3.3.1)重写:根据对象来多态 3.3.2)

为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处?

为什么 Java 只有值传递,但 C# 既有值传递,又有引用传递,这种语言设计有哪些好处? http://www.zhihu.com/question/20628016 Java值传递的终极解释 http://developer.51cto.com/art/201103/251163.htm

Android 系统UI设计规则

1. Android UI技巧 1.1 不该做什么 1.2 该做什么 2. Android UI 设计理念和注意事项 2.1 Android UI设计理念 2.2 优秀UI设计准则 2.3 设计需要考虑 3. Android UI 框架特性/界面布局 4. Android UI 图标设计原则 4.1 图标的尺寸规则和密度 4.2 图标的设计规则 5. Android UI 开发的GUI工具包,图标,字体和工具 5.1 视觉开发工具 5.2 Android 模板.PSD.矢量工具 5.3 Andr

透过微博浅谈移动设计规则

[透过微博浅谈移动设计规则]1)清晰的界面布局;2)熟悉的操作控件;3)合理的信息结构;4)可靠的触控范围;5)会呼吸的空间;6)统一的视觉风格;7)舒适的文字排版;8)高质量的图片展示.古有京城八大件,今有爽爷八定律,大家随便感受一下 本文作者 打酱油的孩纸 透过微博浅谈移动设计规则

PCB设计规则考量之初识

PCB的设计规则可以分布局与走线.布局里最简单的原则就是避免信号之间的干扰,有把模拟部分与数字部分分开,把开关电源与数字部分分开,把端去耦电容靠近端点,而且从端点出来的电容容值按从小到大摆放效果会好些,再其次,在去耦电容外面就是该端接电阻了,它也要尽量靠近端点.走线里首先是要把电源线设置的粗一些,其次是时钟信号线,而其中的晶振到IC的部分还要加粗. 其他的就说一些零散的概念: 如果是自己设计原理图,让后交给第三方画PCB图,那么,那边都会让你提供一些设计要求,这里的设计要求包括:电源线及电流,时

MySQL 优化、设计规则浅谈

当数据量大,数据库相应慢时都会针对数据库进行优化.这时都是要针对具体情况,具体业务需求进行优化的. 但是有些步骤和规则应该适合各种情况的.这里综合网上找的资料简单分析一下. 第一优化你的sql和索引: 第二加缓存,memcached,redis: 第三以上都做了后,还是慢,就做主从复制或主主复制,读写分离,可以在应用层做,效率高,也可以用三方工具,第三方工具推荐360的atlas,其它的要么效率不高,要么没人维护: 第四如果以上都做了还是慢,不要想着去做切分,mysql自带分区表,先试试这个,对

贪心法-c语言的规则

在面试的过程中,有很多的考验对c的认识的情况,有时会被问到有关字符搭配以及运算先后顺序的问题,比如a+++++b的值,++i+++i+++i+i的值等类似的,这都属于c的符号方面的问题,那么怎样才能轻而易举的去认识它呢? c语言有这样的一个规则:那就是传说中的贪心法,规则是这样定的:每个符号应该包含尽可能多的字符,也就是说,我们的编译器将程序分解成符号的方法是,从左到右一个一个字符的读入,如果该字符可能组成一个符号,那么再读入下一个字符,然后在判断已经读入的两个字符是否有可能是一个符号或者一个符

Android UI设计规则

Android UI技巧 1.1 不该做什么 l  不要照搬你在其它平台的UI设计,应该让用户使用感觉是在真正使用一个Android软件,在你的LOGO显示和平台整体观感之间做好平衡 l  不要过度使用模态对话框 l  不要使用px单位,使用dp或者为文本使用sp l  不要使用固定的绝对定位的布局 l  不要使用太小的字体 1.2 该做什么 l  要为高分辨率的屏幕创建资源 l  要使用适当的间距 l  要正确管理活动(Activity) l  要正确处理屏幕的方向变化 l  需要点击的元素要