千家信息网

如何理解C++的设计原则

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关如何理解C++的设计原则,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++的设计原则就是:学习C++而言,可以认为他是一
千家信息网最后更新 2026年11月01日如何理解C++的设计原则

今天就跟大家聊聊有关如何理解C++的设计原则,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

C++的设计原则就是:学习C++而言,可以认为他是一门独立的语言,他并非依赖C语言,我们可以完全不学C语言,而直接学习C++,但是一定要拥有良好的代码基础,和英语功底。

与在"完整的型别安全性"、"完全的通用性"以及"完善的抽象之美"这三个方面的要求形成对立。C++的设计原则从Simula中借鉴了用户自定义型别(class,§4.1)和类层次机制。然而,在Simula及许多类似的语言中,其对用户自定义型别的支持与其对内建型别的支持存在着根本上的不同。例如,Simula中不允许在栈中为用户自定。

而相反的,内建型别的对象只在栈中被分配空间,不能在动态存储区中分配,而且不能使用指针指向它。这种在对待内建型别与对待用户自定义型别上的差异,暗示着对效率问题的严格考虑。

比如,当作为一个在动态存储区中被分配的对象之引用时,如果该对象属于自定义型别(比如complex,§4.1),那么就会为运行期及空间带来负荷;而这些负荷在有些应用中被认为是不可接受的。这些正是C++的设计原则意欲涉足解决的问题。同时,在用法上的不同也决定了:不可能在范型程序设计中统一对待那些语义上近似的型别。

在维护一个较庞大的程序时,一个程序员不可避免的会基于某些不完整的知识来对程序作一些修改,只关注全部程序代码中的一小部分。基于此,C++提供了class(§4)、namespace(§5.2)和访问控制(§4.1),使设计决策的各异化(locality)成为可能。

在基于一趟编译(one-pass compilation)的语言中,某些顺序上的依赖性是不可避免的。例如在C++的设计原则中,一个变量或者函数在其被声明之前是无法使用的。然而,C++中类成员的名字规则和重载解析(overload resolution)的规则还是在独立于声明顺序的原则下被制定出来,以便将发生混乱和错误的可能性降至***。

◆使用传统的(笨拙的)连接器(linker);

◆与C语言不存在无故的不兼容性;

◆不给C++之下层级的更低层语言留出余地(汇编语言除外);

◆你不会为你所不使用的部分付出代价(零负荷规则);

◆在产生疑惑时,能提供完全自主控制的途径。

在C++的设计中只要在不严重影响其对强型别检查(strong type checking)的支持的地方,都尽量做到与C的"source-link"方式相兼容。除了某些微小的细节差别之外,C++将C[Kernighan,1978][Kernighan,1988]作为一个子集包含了进来。

C++与C的兼容性使得C++程序员立刻就能有一个完整的语言和工具集可用。还有两点也很重要,一是有大量关于C的高质量的教学素材已经存在,二是C++程序员可以利用C++与C的兼容性而直接并有效的使用大量现成的程序库。

在决定将C作为C++的基础的时候,C还没有像后来那样出类拔萃、炙手可热,所以在考虑这个问题的时候,与C语言所提供的可适应性和高效性相比,C语言的流行程度只是个次要的考虑因素。

然而,与C的兼容性也使得C++的设计原则在某些语法和语义上保留了C的一些瑕疵之处。比如,C语言的声明语法就实在远不及优美;而其内建型别的隐式转换规则也是混乱无章法的。还有另一个大问题,就是许多从C转向C++的程序员并没有认识到,代码质量上的显著提高只能通过在程序设计风格上的显著改变来达到。

看完上述内容,你们对如何理解C++的设计原则有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

C++ 语言 设计 程序 原则 兼容性 用户 程序员 规则 问题 支持 代码 内容 负荷 不同 显著 混乱 不可避免 动态 基础 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网企业 科技和互联网公司 涨乐互联网科技 金融科技与互联网金融 互联网金融 科技金融 杭州互联网科技公司 丰台科技园 互联网 有木互联网科技 互联网科技有限公司 翻译 四个字互联网科技公司取名 成都玖崟互联网科技有限公司乐商圈怎么样 哈尔滨新华互联网科技学院 金融科技与互联网金融相同和不同 深圳市罗太互联网科技有限公司 恒生互联网科技业指数调整周期 厦门江牛科技互联网 广州互联网高科技取餐柜 云南互联网科技学费 求路客互联网科技电话 美国五大互联网科技公司市值多少 南京欣网互联网络科技 喔噻互联网科技有限公司 互联网科技博主是什么意思 湖北码尼互联网科技有限公司电话 佛山市翊博互联网络科技有限公司 朱啸虎曾投资哪些互联网科技企业 锡山区互联网智能科技产品供应 35岁以上互联网科技行业 工业互联网科技创业 科技信息时代互联网发展
0