当前位置: 首页 > news >正文

网站建设必备语言提供佛山顺德网站设计

网站建设必备语言,提供佛山顺德网站设计,wordpress红包插件,广东建设工程信息服务平台C的哲学思想 文章目录 C的哲学思想💡前言💡C的哲学思想☁️C底层不应该基于任何其他语言(汇编语言除外)☁️只为使用的东西付费(不需要为没有使用到的语言特性付费)☁️以低成本提供高级抽象(更…

C++的哲学思想

文章目录

  • C++的哲学思想
  • 💡前言
  • 💡C++的哲学思想
    • ☁️C++底层不应该基于任何其他语言
    • (汇编语言除外)
    • ☁️只为使用的东西付费
    • (不需要为没有使用到的语言特性付费)
    • ☁️以低成本提供高级抽象
    • (更高级的目标是0成本提供高级抽象)
  • ⭐END
    • 🌟跋
    • 🌟交流方式

💡前言

在很多领域,有些东西是永恒的。而在 C++ 中有下面三条哲学思想便属于这一类:

  1. C++底层不应该基于任何其他语言
  2. 只为使用的东西付费
  3. 以低成本提供高级抽象

向我们的 C++之父 Bjarne Stroustrup 致敬!

Bjarne Stroustrup’s Homepage

在这里插入图片描述

注意:本文并不攻击其他任何语言。

💡C++的哲学思想

☁️C++底层不应该基于任何其他语言

(汇编语言除外)

如果一个语言的目标就是成为正真的高级,那他就必须把做系统程序的设计工作让给其他语言。比如java,python等。这就不得不同时记住两种语言的原语和准则。

C++ 试图给出另一条路,它提供了低级特性和抽象机制,支持这两种东西构造混合的系统。

☁️只为使用的东西付费

(不需要为没有使用到的语言特性付费)

对于规模较大的语言,有一种论断人人皆知,说它们会产生大而慢的结果代码。

如:

由于支持某种特性,使得这个开销遍布于整体,如 java 的很多类型必须开启在堆区,而 C++ 可以自由的在堆或栈创建需要的对象。

还有比如在 C++11 推出的std::thread,没有自动join的机制,在 C++20 推出了std::jthread弥补了这一缺陷。而不是直接在原有的std::thread中修改。因此在以往的代码中,使用者应该清晰的知道自己使用std::thread的代价(如效果,内存大小等),不能因为被后续的规定影响以往的代码。保证十年前的代码,在十年后编译还能表现一致的效果。

这个规则在 C++ 的设计决策中不断成为最关键的考虑。虚函数,多重继承,运行时的类型识别,异常处理和模板,都是与此有关的特性实例。

☁️以低成本提供高级抽象

(更高级的目标是0成本提供高级抽象)

如果像拒绝人们建议一个特性,0开销原则可能是所有规则中最锋利的一个。

但一切都是折中的,这正是设计的美妙所在。

下面是0开销原则的一个经典应用:这是一个时间单位转换问题的小例子。

以第一段代码的风格写更容易出错。

而第二段代码,更抽象,且不会付出格外的代价。两者生成的汇编代码可以达到一致的效果。

struct Duration {int millis_;
};void example() {auto d    = Duration{};// 毫秒d.millis_ = 100;// 秒auto timeout = 1;// 直接将秒在没*1000情况下,直接赋值到毫秒上d.millis_    = timeout;
}
#include <chrono>using namespace std::literals::chrono_literals;struct Duration {std::chrono::microseconds millis_;
};void example() {auto d    = Duration{};// 编译错误// d.millis_ = 100;// 效果一致,且表达更清晰d.millis_ = 100ms;// 或者写 `std::chrono::seconds(1)`// 但`1s`能更抽象,清晰,简洁auto timeout = 1s;// 由程序自动帮你做转换d.millis_    = timeout;
}

⭐END

🌟跋

ref:

现代C++软件架构:方法与实践 (豆瓣) (douban.com)

《现代C++软件架构》

1.6 C++的哲学思想

p7

C++语言的设计和演化 (豆瓣) (douban.com)

《C++语言的设计和演化》

4.5 低级程序设计支持规则

p117

(C++语言的设计和演化) C++的设计理念-CSDN博客

🌟交流方式

⭐交流方式⭐ |C/C++|算法|设计模式|软件架构-CSDN社区

关注我,学习更多C/C++,python,算法,软件工程,计算机知识

B站:

👨‍💻主页:天赐细莲 bilibili

http://www.15wanjia.com/news/194372.html

相关文章:

  • 重庆网站优化网络服务视频号分销解决方案
  • 手机网站报价单模板下载网站空间网站虚拟空间
  • 重庆响应式网站多少钱海口有做棋牌娱乐网站的吗
  • 网站建设合同注意wordpress 企业库插件
  • 做不一样的网站设计网站公司 生活湖南岚鸿
  • 网站上地图是怎样做的企业app定制
  • 公众号和网站先做哪个wordpress the7 慢
  • 不同企业的网络营销网站文山州住房建设网站
  • 红色页面网站网上电商
  • 网站开发者账号购买郑州国外网站建设
  • 网站反向链接浏览器打开网址404
  • 做水利网站需要多少钱企业请别人做网站
  • 做的比较好的企业网站网站空间排行榜
  • 做网站是怎么赚钱的违法网站开发文本模版
  • 设计师常去的素材网站在国内做推广产品用什么网站好
  • 怎样在手机上做网站金融网站设计欣赏
  • 河北省企业网站建设公司中装建设虎哥
  • 网站建设具体工作有什么滕州营销型网站
  • 企业网站建设公司网络服务西安大型网站设计公司
  • 企业网站建设的要素红网
  • 搜狐网站开发郑州防控升级
  • 东莞网站建设图表h5制作工具手机版
  • 建设局网站打不开是什么原因策划平台
  • 一个网站做十个二级域名项目交流平台
  • 二手商品网站制作wordpress链接前面的图标
  • 网站怎么做舆情监测建设厅电工证查询网站官方网
  • 如何经营一个购物网站wordpress 好用的编辑器
  • 品牌网站官网如何注册免费企业邮箱
  • 扫描购物网站建设海南网站设计公司
  • 网站建设登录结构图浙江网站建设上市公司