自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 《C++ Primer Plus》第十六章——string类和标准模板库(笔记)

双端队列:不像vector中那样是线性时间的,从deque对象的开始位置插入和删除元素的时间是固定的。所以,如果多数操作发生在序列的起始和结尾处,则应考虑使用deque数据类型。双向链表:vector强调的是通过随机访问进行快速访问,而list强调的是元素的快速插入和删除。其次,作为成员函数,它可以使用模板类的内存管理工具,从而在需要时。队列:它不仅不允许随机访问队列元素,甚至不允许遍历队列。首先,它更适合与特定的容器;有时,可以选择使用STL。

2025-05-08 00:03:56 223

原创 《C++ Primer Plus》第十五章——友元,异常和其他(笔记)

通常,如果指向对象(*pt)的类型为Type或者是从Type直接或间接派生而来的类型,则表达式。将指针pt转换为Type类型的指针;否则,结果为0,即空指针(主要的。使用友元类方法(例在Tv中使用Remote的友元类方法)时,应用。的引用,确定两个对象是否为同种类型(重载了==和!如果一个函数需访问两个类的私有数据,则需要将其设置为。:和catch()配套使用。中异常,并跳转到该位置执行。是确保安全的调用虚函数)

2025-04-26 11:47:00 238

原创 《C++ Primer Plus》第十四章——C++中的代码重用(笔记)

在外部定义模板方法时,也需要加template <class Type>:它使得从多个类(它们的基类相同)派生出的对象只继承一个基类对象。C++在基类是虚拟的时,禁止信息通过中间类自动传递给基类。:基类的公有成员和保护成员都将成为派生类的。:基类的公有成员和保护成员都将成为派生类的。很多时候类名称后面都要加<Type>的使用:尖括号表示包含数据的类型。,而不是它们在初始化列表中的顺序。若继承时不特定指出,编译器将。包含多个项目时,这些项目被。

2025-04-24 15:12:10 126

原创 《C++ Primer Plus》第十三章——类继承(笔记)

(创建派生类对象时,程序首先调用基类构造函数,再调用派生类的构造函数。派生类的构造函数总是调用一个基类构造函数):Brass指针既可以指向Brass对象,也可以指向BrassPlus对象,因此可以使用一个。应该时虚函数(通常应给基类提供一个虚拟析构函数,即使它并不需要析构函数),指出类是一个抽象基类,在类中可以不定义该函数。很有用,它让派生类能访问公众不能使用的内部函数。在派生类中修改基类的方法,(不能用于重载)提供为实现的函数,纯虚函数的声明结尾处为。派生类的成员可以直接访问基类的。

2025-04-19 13:49:43 222

原创 《C++ Primer Plus》第十二章——类和动态内存分配(笔记)

的类成员,也要使用这种方法)(这是因为引用和const类似,只能在被创建时进行初始化)“假设motto是一个StringBad对象,则下面四种声明都将调用。,必须在执行到构造函数之前,即创建对象时进行初始化,可以使用。,这是因为声明描述了如何分配内存,但并不分配内存。对于使用布局new操作符创建的对象,应以与。(因为晚创建的对象可能依赖于早创建的对象。在包含类的文件中初始化,初始化时使用。中使用new(new[]),则必须在。来指出静态成员变量所属的类。,则可以在类声明中初始化”创建的,则仅当你显示使用。

2025-04-18 11:25:30 202

原创 《C++ Primer Plus》第十一章——使用类(笔记)

只接收一个参数的构造函数定义了从参数类型到类类型的转换。:从类类型到参数类型的转换:必须是类方法,不能指定返回类型,不能有参数。所需要的形参数目少一个,因为其中一个操作数是被隐式地传递的调用对象”但在定义中不要加friend,也不需要加限定符(Time::)“将其原型放在类声明中,并在原型声明前加上。与操作符使用的操作数数目相同;限定了这种构造函数,则它只用于。

2025-04-12 22:53:47 160

原创 《C++ Primer Plus》第十章——对象和类(笔记)

如果既可以通过初始化,也可以通过赋值来设置对象的值,则应采用初始化方式,通常这种方式的效率更高。“只要类方法不修改调用对象,就应该将其声明const(在函数的括号后面加上const)”“警告:要创建类对象数组时,这个类必须要有默认构造函数”,那么在类的声明时必须加上构造函数的参数(初始化)被用来创建对象,而不能通过对象调用”,因为这是类对象的默认访问控制”或static而不是const”“在类中创建一个所有对象共有的。“不必在类声明中使用关键字。声明中的函数都将自动成为。“由于这种自动变量被放在。

2025-04-11 12:06:18 189

原创 《C++ Primer Plus》第九章——内存模型和名称空间(笔记)

(extern)可以在内部重新声明全局变量,但是不能在引用声明中进行初始化,要在声明的下一行进行赋值。C++标准不赞成在名称空间或全局作用域中使用关键字static(利用未命名的名称空间),但是要在函数的原型和定义中使用该关键字(static)将特定的名称添加到它所属的声明区域中。中的全局变量应该用const声明。可以使用static把。编译器将不允许使用两个。

2025-04-06 13:51:56 122

原创 《C++ Primer Plus》第八章——函数探幽(笔记)

实参是按照从左往右一次被赋给相应的形参的,而不能跳过任何参数,因此,下面的调用时不许的。:例如 char和short自动转换为int,float自动转换为double。:例如 int转换为char ,long转换为double。时,传的数要是变量,比如x+3就不是变量。特点:使调用速度变快,但是占用内存更多。rodent++ 会导致rats也自增。-在函数的声明和定义前加上关键字。提升转换 优于 标准转换。

2025-04-05 18:46:56 120

原创 《C++ Primer Plus》第七章——函数—C++的编程模块(笔记)

所以仅当只有一层间接关系时,才可以将非const地址赋值给const指针”时,不仅需要传入地址,而且需要传入长度(以便找到数组末尾),但是。“获取函数的地址很简单:只要使用函数名(后面不跟参数)即可”如果recurs调用了5次,则statement1按此。,例如,原型不会将整数转化为结构或地址”自带结束字符(\0)所以可以不传入长度。“函数:仅当有意义时,原型化才会导致。调用5次,而statement2按。混合的指针赋值方式将不再安全。处理字符串的标准方式。

2025-03-30 11:41:32 157

原创 《C++ Primer Plus》第六章——分支语句和逻辑操作符(笔记)

方法good()指出最后一次读取是否成功,这一点至关重要。这意味着应该在执行读取输入的操作后,立即使用这种测试。"由于表达式inFile >> value的结果是inFile,所以可以替换为。“ ‘and'可替换&&;or 可替换 ||;使用字符时,即使输入了整数,也可以从default分支中进行。"如果最后一次读取数据时遇到EOF,方法。判断是否为空白(空格 换行符 制表符)使用整数时,检测不了非整数的内容。的结果依然是char类型,但是。判断是否为字母的的库函数。标签值还必须是常量”

2025-03-29 17:56:00 209

原创 《C++ Primer Plus》第五章——循环和关系表达式(笔记)

"'4 + x++'不是一个完整的表达式,所以 C++不保证在计算子表达式'4 + x++'之后,x立刻增加1”又定义了一个变量a,在内部使用新定义的(旧a会被隐藏),在外部使用旧定义的”"'guests++ < 10'是一个完整的表达式,因此该式的末尾是一个。由于逗号的优先级很低,所以17赋值给cata,40不起作用。比表达式中的操作符高,因此要用括号获取正确的运算顺序。一个拷贝,将其值加1,然后将复制的拷贝返回。因此,对于类而言,前缀版本比后缀版本。相同,以从右往左的顺序结合。的值定义为左侧成员的值,

2025-03-29 10:04:49 272

原创 《C++ Primer Plus》第四章——复合类型(笔记)

get()保留在输入队伍,这就导致使用get()时,会被第一次输入时留下的换行符阻碍,从而无法第二次使用get()正常读取。在获取字符数组输入时,只读取一个单词(以空格为界),读取一个单词后,放到数组中,并在结尾自动补上'\0' ”计算字符串长度时,strlen()只计算可见的字符,而不会计算空字符(\0)”必须一\0结尾,否则不能说是字符串(例如,cout就不能准确的打印出)”操作符(*)之前,将指针初始化一个确定的,适当的地址”的方式不同,前者不是类方法,而后者是,参数也不同。

2025-03-23 12:05:36 303

原创 《C++ Primer Plus》第三章——处理数据(笔记)

(long常量有后缀L),因此usigned int比long更适合用来表示十六位进制的地址”,该变量的值将是不确定的。这意味着该变量的值将是它被创建之前,该内存单元保存的值”“2,34E+22是一个小数点左边有23位的数字,加上1,就是在第23位加1,但。只能表示数字中的前6位或前7位,因此修改第23位对这个值不会有影响”不会修改变量本身,而是创建一个新的,指定类型的值”常量时(const)没有提供值,则该常量的值将是。ch和i的值都是77,cout将这个值的。的名称被保留给实现,用作全局标识符”

2025-03-22 17:14:55 350

原创 《C++ Primer Plus》第二章——开始学习C++(加上笔记)

预处理编译指令作用:在最终编译之前,使用iostream文件的内容替换该编译指令”是用户定义的数据类型规范,它详细描述了如何让表示信息以及可对数据执行的操作。是根据类型规范创建的实体,就像简单变量是根据数据类型描述创建的实体一样”作用:使得程序可以使用std名称空间中的定义”也是一个智能对象”(字符串转为所声明的形式)在打印之前,必须将整数形式的数字转换为。

2025-03-22 09:23:33 226

原创 面试题1(加上笔记)

(1.定义一个,没有任何成员变量和成员函数,求,结果是因为:当我们声明类型的实例的时候,它必须在内存中,否则无法使用这些实例2.如果添加一个函数和函数,结果依然是1因为:调用构造函数和析构函数只需要知道,这些地址只与类型相关,不会影响到实例3.如果把析构函数标记为,结果为4(32位)或8(64位)因为:C++编译器一旦发现类型中有虚函数,就会生成虚函数表,并在每一个实例中添加一个指向虚函数的,sizeof求的是指针大小)错误:复制构造函数A(A other)用的是。

2025-03-20 15:36:31 252

原创 斐波那契数列(递归法)

key:用return来递归 用if判断来限制与输出。

2025-03-20 00:20:16 125

原创 求最小公倍数和最大公约数

key:循环加交换 以新数据代替旧数据来重复操作。

2025-03-20 00:15:40 81

原创 无符号类型的负变正情况

key:i会随着循环减到零以下的数,出现溢出情况。

2025-03-19 23:20:44 73

原创 【一】《高质量程序设计指南》阅读(第3章---程序的基本概念)

没有必要把C的优先级与结合率搞清楚,只需要按照自己的需求多使用”()“就可以。

2024-10-19 16:54:31 129

原创 【一】《高质量程序设计指南》阅读(第2章---编程语言发展史)

第二章2.1编程语言大事记2.2Ada的故事2.3C/C++发展简史2.4Borland与Microsoft之争2.5Java与Microsoft的较量2.6小结

2024-10-19 16:54:04 119

原创 【一】《高质量程序设计指南》阅读(第1章---高质量软件开发之道)

经鹏哥推荐,在图书馆找《高质量的C/C++编程》没有找到,后在网上发现另一个名字《高质量程序设计指南》,于是终于找到了。我看的这本是第三版,本书一共397页,共分为17大章。本次系列包含我私自认为书中比较实用且重要的内容和操作展示。

2024-09-27 17:34:34 706

原创 在自定义函数中用循环打印数组时,出现打印不全的情况(原因及解决方法)

sz就不能计算出main中数组的真实大小,sz的结果会是2,所以只打印了两个数组(arr[0] arr[1])int sz = sizeof(arr) / sizeof(arr[0]);(用来计算数组大小)这里希望将数组arr[]用函数转变为升序数组。但打印出的结果数组却不全。

2024-08-27 15:49:57 479

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除