| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 读 S. Meyers 之 《More Effective C++:35个改编程与设计的有效方法》 -> 正文阅读 |
|
[C++知识库]读 S. Meyers 之 《More Effective C++:35个改编程与设计的有效方法》 |
这本书的作者就是上次介绍的 S. Meyers,这本书也就是上次介绍的 Effective C++ 的续集。其实这两本书本可以写在一起,但作者还是把他认为比较“高级”的部分独立出来写了两本书。一本仅涉及 C++ 语法本身,也就是这一本;另一本则专门讲 STL,那本我们下次再聊。 这本书中关注的重点仍然有约一半是和指针有关的。指针是 C 语言的精髓,它本质是汇编语言寻址机制的抽象,但到了 C++ 中指针的地位就变得很尴尬。很多时候你不得不用指针,但 C++ 中的类机制让这一切变得很复杂。为了让这一切变得易于使用, C++ 又引入了 smart pointers 之类的机制用于取代指针。所以现在 C++ 里既有基础的指针,又有 smart pointers,基础指针是相当不安全的, smart pointers 则相对安全些。 C++ 的最新标准则鼓励人们不要使用基础的指针,尽量使用 smart pointers 等机制代替。问题在于,很多初学者学到基础指针就觉得自己学会了,根本不知道还有 smart pointers 一说。于是,混乱且不安全的 C++ 代码到处都是。 除了指针,这本书还对一些其他的 C++ 高级特性做了说明。这些特性放到 C++ 里算是高级,但到了其他现代化设计的语言中,只能算是基础。例如异常处理机制。这基本是目前设计的语言的标配,但到了 C++ 里它不仅加入得很晚,而且为了兼容 C++ 之前设计的语法垃圾堆,弄得非常复杂。 还有 RTTI (Run-Time Type Identification),这个功能在 Python 或者 C# 之类的语言里就是一个非常自然的功能,在 Rust 中则是一个清晰独立的包。但在 C++ 中就是语言标准里让人感觉非常难受的一部分。 总之就是,确实很多现代化的编程功能 C++ 都有,而且可能不少还原源自 C++。但目前看来, C++ 对现代化编程功能的支持还是远远不够。而且已经支持的功能在 C++ 里用起来也不舒服。这一切的前提还是你用的是最新标准的 C++。如果你痴迷于几十年前的旧标准,那么连这些优势都没有。 求点赞,求收藏,求分享 欢迎关注我的公众号,微信搜索:知则 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 | -2025/3/4 5:38:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |