当前位置: 首页 > 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.bjxfkj.com.cn/article/110564.html

相关文章:

  • 全国网站设计排名织梦模板怎么修改主页
  • 温州网站建设公司哪个好手机做网站的
  • 旅游网站建设服务对象wordpress英文改为中文
  • 怎么做网站销售什么是网络营销信息
  • 网站开发硬件环境怎么在网上做网络营销
  • 网站乱码淮北市相山区建设局网站
  • 宝宝投票网站怎么做的新余市建设局网站
  • 游戏网站logo制作十堰网络推广培训
  • 网站内部优化wordpress禁用php报错
  • 哈尔滨建立网站公司河南省城乡与住房建设厅网站首页
  • 申请一个域名可以建设一个网站吗温州专业建站
  • 自学设计软件的免费网站虚拟主机管理
  • 网站建设与维护视频教程在中国如何申请域名
  • 网站策划书的要点青岛网站建设seo优化
  • 北京建站模板展示平躺设计家官网
  • 电子商务网站建设应该侧重哪方面soho设计网站
  • 温州苍南网站建设品牌网站如何做
  • 网站切片 做程序html5网页制作源码大全
  • 如何让百度收录网站濮阳全员核酸检测
  • wordpress给会员发信seo推广培训中心
  • 佛山制作手机网站网站制作中需要注意的地方
  • 建个微商城网站电商小程序开发方案
  • 做公司网站需要什么程序html设计网站
  • 怎么查网站是哪家制作公司做的龙岩公司注册流程
  • 企业网站托管后果湖北城市建设职业技术学院网站
  • 永久免费的网站空间辽宁和生活app下载安装
  • wordpress 乱码太原seo优化公司
  • 张店网站开发招聘html5网页模板代码
  • 网站建设竞价托管外包张楚岚
  • 做警员编号网站大气宽屏的网站