C++Primer(第5版)中文版读书笔记

1.运行时类型识别(run-time type identification,RTTI)的功能由两个运算符实现:

(1)typeid运算符,用于返回表达式的类型。

(2)dynamic_cast 运算符,用于将基类的指针或引用安全地转换成派生类的指针或引用。

2.输出补白:标准库提供了一些操作符帮助我们完成所需的控制:

(1)setw指定下一个数字或字符串值得最小空间。

(2)left表示左对齐输出。

(3)right表示右对齐输出,右对齐是默认格式。

(4)internal控制负数的符号的位置,它左对齐符号,右对齐值,用空格填满所有中间空间。

(5)setfill允许指定一个字符代替默认的空格来补白输出。

3.为了确定最佳匹配,编译器将实参类型到形参类型的转换划分成几个等级,具体排序如下所示:

(1)精确匹配,包括以下情况:

(I)实参类型和形参类型相同。

(II)实参从数组类型或函数类型转换成对应的指针类型。

(III)向实参添加顶层const或者从实参中删除顶层const。

(2)通过const转换实现的匹配

(3)通过类型提升实现的匹配

(4)通过算术类型转换或指针转换实现的匹配。

(5)通过类类型转换实现的匹配。

4.类的基本思想是数据抽象(data abstraction)和封装(encapsulation)。

数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程(以及设计)技术。类的接口包括用户所能执行的操作;类的实现则包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数。

封装实现了类的接口和实现的分离。封装后的类隐藏了它的实现细节,也就是说,类的用户只能使用接口而无法访问实现部分。

类要实现数据抽象和封装,需要首先定义一个抽象数据类型(abstract data type)。

5.在C++语言中,我们使用访问说明符(access specifiers)加强类的封装性:

(1)定义在public 说明符之后的成员在整个程序内可被访问,public 成员定义类的接口。

(2)定义在private说明符之后的成员可以被类的成员函数访问,但是不能被使用该类的代码访问,private部分封装了(即隐藏了)类的实现细节。

6.在cctype头文件中定义了一组标准库函数:

(1)isalnum(c) 当c是字母或数字时为真

(2)isalpha(c) 当c是字母时为真

(3)iscntrl(c) 当c是控制字符时为真

(4)isdigit(c) 当c是数字时为真

(5)isgraph(c) 当c不是空格但可打印时为真

(6)islower(c) 当c是小写字母时为真

(7)isprint(c)当c是可打印字符时为真(即c是空格或c具有可视形式)

(8)ispunct(c) 当c是标点符号时为真(即c不是控制字符、数字、字母、可打印空白中的一种)

(9)isspace(c) 当c 是空白时为真(即c是空格、横向制表符、纵向制表符、回车键、换行符、进纸符中的一种)

(10)isupper(c) 当c是大写字母时为真

(11)isxdigit(c) 当c是十六进制数字时为真

(12)tolower(c) 如果c是大写字母,输出对应的小写字母;否则原样输出c

(13)toupper(c) 如果c是小写字母,输出对应的大写字母,否则原样输出c

时间: 2024-10-06 22:46:57

C++Primer(第5版)中文版读书笔记的相关文章

Javascript Dom编程艺术(第2版)读书笔记

Javascript Dom编程艺术这本书我看的是第2版的,真心觉得这本书不错,它将DOM编程的一些基本原则,及如何让Javascript代码在浏览器不支持的情况下,或浏览器支持了Javascript但用户禁用它的情况下做到平衡退化,让最基本的操作仍能顺利完成,以及如何让结构与样式分享做到真正的渐近增强叙述得很清楚,也很容易理解接受.我也是看了这本书之后,才对代码优化,结构,行为,样式有了进一步的加深理解. Javascript Dom编程艺术(第2版)读书笔记,布布扣,bubuko.com

《Javascript_Dom 编程艺术》(第2版)读书笔记

第1章 Javascript 简史 Dom : 平稳退化.渐进增强,以用户为中心的设计 第2章 Javascript 语法 1.程序设计语言分为:解释性(javascript)和编译型(java,C++)两大类 2.变量作用域:如果某个函数中使用了var,该变量被视为一个局部变量,只存在于该函数的上下文中:反之,则是一个全局变量,如果脚本中已经存在一个与其同名的全局变量,这 个函数就会改变那个全局变量(在其后出现)的值. 3.内建对象(Array, Math, Date等),宿主对象(浏览器提供

《C++ Primer第五版中文版》PDF高清

<C++ Primer第五版中文版>PDF高清 链接: https://pan.baidu.com/s/1C71Y9g1Jce2OBwLnfb0t0w 提取码: 8k9u 内容简介  · · · · · · 这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级.除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Josée Lajoie 对C++标准的深入理解,以及C++ 先驱 Barba

《Effective Java中文版第二版》读书笔记

说明 这里是阅读<Effective Java中文版第二版>的读书笔记,这里会记录一些个人感觉稍微有些重要的内容,方便以后查阅,可能会因为个人实力原因导致理解有误,若有发现欢迎指出.一些个人还不理解的会用斜线标注. 第一章是引言,所以跳过. 第二章 创建和销毁对象 第1条:考虑用静态工厂方法代替构造器 含义 静态工厂方法是指一个返回类的实例的静态方法,例如: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE :

【持续更新中】Linux命令行与Shell脚本编程大全(第3版)读书笔记12-20章

<Linux命令行与Shell脚本编程大全(第3版)>读书笔记 第十二章 使用结构化命令 根据条件使脚本跳过某些命令,这样的命令称为结构化命令(structured command).结构化命令允许改变程序执行的顺序. If-then语句: If command Then Commands Fi 如果if后的command执行退出码是0(也就是执行成功了),then后面的语句就会被执行. 也可以写成: If command; then Commands Fi 注意了,if后的command结果

JavaScript DOM编程艺术(第二版)读书笔记 ——(一)

学习和工作中经常会通过搜索引擎的引导进入到博客园中,技术大牛们的知识概括往往一针见血解决了困扰我很久的大大小小的问题.可是一直都是看别人写的博客,自己一直没动过手,直到看到一个博客说到,从简到繁地记记读书笔记或知识总结是促进技术进步的一个很好的方法,觉得非常在理,学习后的整理更能记得牢固,于是最近下定决心,开始我的博客园"生活". 说了从简到繁,作为一个前端小小小小白,我决定把经典的前端书籍的读书笔记写在这里,说不定以后遗忘的时候返回来看到会有豁然开朗的感觉(偷笑). 第一章--Jav

JavaScript DOM 编程艺术(第2版)读书笔记 (7)

动态创建标记 一些传统方法 document.write document.write()方法可以方便快捷的把字符串插入到文档里. 请把以下标记代码保存为一个文件,文件名就用test.html 好了. <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Test</title> </head>

C++ Primer(第五版)读书笔记 &amp; 习题解答 --- Chapter 3

Chapter 3.1 1. using声明具有如下的形式: using namespace::name; Chapter 3.2 1. C++标准一方面对库类型所提供的操作做了规定,另一方面也对库的实现做出了性能上的要求,所以,在一般的应用场合,标准库类型都有足够的效率. 2. 当用一个字符串字面值初始化string对象时,除了最后那个空字符外其他所有的字符都会被拷贝到新创建的string对象中去. 3. 如果使用等号初始化一个变量,实际上执行的是拷贝初始化.如果不使用等号,则执行的是直接初始

C++ Primer(第五版)读书笔记 &amp; 习题解答 --- Chapter 1

Chapter 1.1 1. 每个C++程序都必须有且只能有一个main函数,main函数的返回类型必须是int.操作系统通过调用main函数来运行C++程序. 2. 一个函数的定义包含四部分:返回类型.函数名.形参列表以及函数体. 3. 当return语句包含一个值时,此返回值的类型必须与函数的返回类型相兼容. 4. 类型是程序设计最基本的概念之一.一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算. Chapter 1.2 1. C++包含了一个全面的标准库,标准库就是一个类