我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解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++的设计原则有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

今天就跟大家聊聊有关如何理解C++的设计原则,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++的设计原则就是:学习C++而言,可以认为他是一门独立的语言,他并非依赖C语言,我们可以
2023-06-17

面向对象设计原则在C++中的体现

c++++ 体现了 oop 原则,包括:封装:使用类将数据和方法封装在对象中。继承:允许派生类从基类继承数据和行为。多态:允许对象的行为根据其类型而改变,通过虚函数实现。面向对象设计原则在 C++ 中的体现面向对象设计(OOP)是一组以实
面向对象设计原则在C++中的体现
2024-05-14

C++ 中高性能服务器架构的设计原则

c++++ 高性能服务器架构的设计原则包括:选择合适的线程模型(单线程、多线程或事件驱动)使用非阻塞 i/o 技术(select()、poll()、epoll())优化内存管理(避免泄漏、碎片化,使用智能指针、内存池)关注实战案例(例如使用
C++ 中高性能服务器架构的设计原则
2024-05-14

学校管理系统的MySQL表结构设计原则

学校管理系统的MySQL表结构设计原则引言在现代教育行业中,学校管理系统扮演着至关重要的角色。它帮助学校有效地管理学生、教师、课程和其他关键业务。在设计学校管理系统的数据库时,MySQL是一个强大的工具。本文将介绍学校管理系统的MySQL表
学校管理系统的MySQL表结构设计原则
2023-10-31

如何解析反应式编程 RxJava 设计原理

这篇文章给大家介绍如何解析反应式编程 RxJava 设计原理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、ReactiveX 与 RxJavaReactiveX 的全称为Reactive Extension,一般缩
2023-06-03

Java设计模式中的七大原则详细讲解

本篇文章主要对Java中的设计模式如,创建型模式、结构型模式和行为型模式以及7大原则进行了归纳整理,需要的朋友可以参考下,希望能给你带来帮助
2023-02-17

PPT设计必须要了解的原则之图示化

  怎么样才能设计出一个能吸引大家目光,让大家看得舒服的PPT呢?针对这一问题,今天小编今天就为大家支一招:当我们进行PPT演示设计之前,了解PPT演示设计的三原则对于我们的设计非常有帮助!今天我们先讲的是图示化,图示化其实就是将文本图示化,这样做的目的是为了让页面更具阅读性与逻辑性。  接下来我们看一个PPT页面的原
PPT设计必须要了解的原则之图示化
2024-04-17

案例解析游戏关卡设计的十大原则

编程学习网:游戏设计开发都要遵守一定的原则,关卡设计更是如此,虽然这些原则是产品设计的极佳指导,并且加上一点创造性的诠释,将其直接运用于关卡(和任务)设计确实需要一些魄力。但在此我要将其作为一个宽松的模版,以便创造设计出色电子游戏关卡的十大原则,并列举一些出色的游戏案例,说明这些原则的可行性。
案例解析游戏关卡设计的十大原则
2024-04-23

C语言容易被忽视的函数设计原则是什么

这篇文章主要介绍了C语言容易被忽视的函数设计原则是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言容易被忽视的函数设计原则是什么文章都会有所收获,下面我们一起来看看吧。函数设计原则函数从意义上应该是一个
2023-06-30

如何理解从观察者模式到响应式的设计原理

这篇文章主要介绍“如何理解从观察者模式到响应式的设计原理”,在日常操作中,相信很多人在如何理解从观察者模式到响应式的设计原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解从观察者模式到响应式的设计原理
2023-06-16

PHP接口性能优化之API设计原则(如何通过合理的API设计提升PHP接口性能?)

PHP接口性能优化之API设计原则:选择适当的HTTP方法,使用JSON/XML格式,压缩数据。使用缓存机制,优化数据库查询。并发处理请求,使用分层API,限制请求速率。使用监控工具,进行性能分析,并根据测试结果调整API设计。
PHP接口性能优化之API设计原则(如何通过合理的API设计提升PHP接口性能?)
2024-04-02

C++ 函数重载和重写与类层次结构的设计原则

函数重载和重写简介c++++ 中的函数重载和重写允许同名函数具有不同的参数列表或覆盖基类中的同名函数,以实现更灵活和可扩展的代码,并遵循重要原则(如 srp、lsp、dip)。C++ 函数重载、重写与类层次结构设计原则简介C++ 中的函
C++ 函数重载和重写与类层次结构的设计原则
2024-04-20

PHP Web 服务开发与 API 设计如何遵循 REST 原则

遵循 rest 原则进行 php web 服务开发和 api 设计:使用统一接口访问资源。保持无状态,不存储客户端信息。启用缓存以提高性能。分层系统便于客户端和服务器通信。在 php 中使用 slim 框架或 laravel 框架创建服务。
PHP Web 服务开发与 API 设计如何遵循 REST 原则
2024-05-06

深入解析MongoDB的查询优化与索引设计原则

MongoDB是一种流行的NoSQL数据库,它被广泛应用于许多大规模的Web应用程序和数据驱动的应用程序。在使用MongoDB时,查询优化和索引设计是非常重要的,可以显著提高数据库的性能和响应速度。本文将深入解析MongoDB的查询优化和索
深入解析MongoDB的查询优化与索引设计原则
2023-11-02

“PHP 面向对象编程设计模式:理解 SOLID 原则及其应用”

SOLID 原则是面向对象编程设计模式中的一组指导原则,旨在提高软件设计的质量和可维护性。这些原则包括单一职责原则、开放-封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。
“PHP 面向对象编程设计模式:理解 SOLID 原则及其应用”
2024-02-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录