自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Beginning C++20 From Novice to Professional》第十二章 Defining Your Own Data Types (下篇)

并且。

2024-05-17 23:47:12 832

原创 《Beginning C++20 From Novice to Professional》第十二章 Defining Your Own Data Types (上篇)

虽然一般工程函数不会输出这种提示信息,但是写小程序用来学习或者调试的时候,输出一个定位信息或者局部变量是很好的~之前已经说过,默认构造函数只有在我们没写的时候编译器才会生成,此处写了那就用写的版本,编译器不会再生成;话说回来,这个在《Primer》里叫做合成构造函数,我觉得这个名字更合理;所以下面28行处不会通过编译,因为已经不支持默认初始化了有的写法会使用this->length=length的方式来初始化,但是书里还是采用不同的名字来进行编写,避免名字冲突造成歧义。

2024-05-15 16:20:45 849

原创 《Beginning C++20 From Novice to Professional》第十章 Function Templates

由函数模板生成函数的过程叫作实例化instantiation,模板的参数通常是类型,但也有可能是其他一些值,比如维度等我们来看一个之前提到过的例子,函数模板语法大致如上,尖括号里是模板参数,然后把这里声明的参数当做正常类型使用即可这里的T叫做模板类型参数,我们可以用typename关键字,也可以用class关键字,但是更推荐前者。

2024-05-08 01:07:00 709

原创 《Beginning C++20 From Novice to Professional》第九章 Vocabulary Types

有一些类型虽然不是基本类型,但是和基本类型一样常用,都是用来替代相同功能的C版本特性的,比如std::unique_ptr, std::shared_ptr, std::string, std::array, std::vector,分别用来替代raw pointers, const char* strings, low-level dynamic memory本章讲的主要也是一些小特性,不过不是用来替代什么类型,是为了增加代码可读性、提高编码效率设计的。

2024-05-05 22:36:16 853

原创 《Beginning C++20 From Novice to Professional》第八章 Defining Functions

一般包括函数头和函数体两大部分,我们可以类比main函数来看函数头包括了返回值类型、函数名、参数列表函数体包括了内部逻辑和返回值。

2024-05-04 22:13:28 870

原创 《Beginning C++20 From Novice to Professional》第七章Working with Strings

string有很多构造函数,默认构造、字面量构造、重复字符构造、复制构造、范围构造但是使用构造函数的时候一定要区分小括号和大括号,小括号使用的才是带参数的构造函数,大括号里只含一个字符串才会得到正常的初始化结果这是变量phrase的初始化情况,0-13表示的是proverb下标为0开始的13个字符,13表示的不是范围右边界(这是经常出错的地方)下面对书里提到的初始化方式做了一个总结。

2024-04-29 21:50:00 1766

原创 《Beginning C++20 From Novice to Professional》第六章 Pointers and References

指针和引用都是间接寻址在高级语言中的表现,一是提供效率上的保证,二是给动态内存的操作带来很多方便。

2024-04-25 23:44:29 759

原创 《Beginning C++20 From Novice to Professional》第五章 Arrays and Loops

循环和数组确实是联系比较紧密的两个基础语法,数组让我们管理大量同类对象,循环可以简单地遍历一个范围内的元素。

2024-04-23 19:02:30 730

原创 《Beginning C++20 From Novice to Professional》第四章 Making Decisions

书上对做决策解释得挺清楚的,指的是根据比较的结果更改执行顺序的这个过程;这也是将计算机与计算器区别开的一个重要特征,计算机能够做决策不过根本还是在人的代码写得怎么样。

2024-04-20 18:05:37 1672

原创 《Beginning C++20 From Novice to Professional》第三章Working with Fundamental Data Types

本章能够学到的是基本是上一章基本类型的延伸,讲了一些和变量相关更接近编程语言语法的东西,和计算不太相关除了基本类型还有一些其他类型和技术可以用。

2024-04-19 17:14:10 1067

原创 《Beginning C++20 From Novice to Professional》第二章Fundamental Types

加个const即可浮点数存储大多遵循IEEE754标准,但大多数情况下我们只用double,够大也够快浮点数默认字面量也是double类型。

2024-04-19 15:04:19 1961

原创 《Beginning C++20 From Novice to Professional》第一章Basic Ideas

编程语言的学习不像数学,先有定义后有公理,再有定理与领域,数学我们可以理解为一个倒金字塔,由一点发散出整个理论体系。编程像一个梯形,基础部分有茫茫多的概念,上层较宽发散开来。这就导致我们很难用循序渐进的固定思路去了解programming language为了说明问题,我们常常采用一些代码的比较与示例,至于这些代码是什么意思,我们无法递归定义,这是编程技术的特点,需要我们先拥有一些基础理解(也是工程学科的共性)

2024-03-30 17:07:13 476

原创 深入理解C++11:C++11新特性解析与应用

VisualAssistX2022破解下载 VAX番茄助手Visual Assist X 10.9.2488 for VS2022 汉化破解版(附key+方法) 64位 下载-脚本之家这里破解了一下VS。。。没有括号补全太难受了。

2024-01-04 16:12:09 1181

原创 《A Tour of C++ Third Edition》6. Essential Operations

含参构造、默认构造、拷贝构造、移动构造、拷贝赋值、移动赋值、析构,都是一系列操作下面的场景可能会涉及拷贝和移动操作:需要编译器生成时使用=default,不想要某成员可以使用=delete。

2024-01-04 15:46:28 462 1

原创 《A Tour of C++ Third Edition》5. Classes

public:像这样含有纯虚函数的类叫做抽象类,它的子类必须实现这些纯虚函数定义他为虚函数是为了允许用基类的指针来调用子类的这个函数定义一个函数为纯虚函数,才代表函数没有被实现i!= sz;++i)抽象类可以这么用,我们不管c是什么容器,但是c一定有size()和下标操作是可以使用的,这样就实现了指针、引用的多态抽象类本身是不能有对象的,他只能做接口public:private:Vector v;//2.2中的Vector定义public:private:return x;

2023-12-23 20:26:26 990 1

原创 《A Tour of C++ Third Edition》3.Modularity

C++程序中有许多独立开发的组件:函数、自定义类型、类层级、模板等。重要的一点是区分声明和实现,尤其是函数不论是先声明再实现,还是类内声明,类外实现都是一样的原理,但是定义只能出现一次。

2023-12-21 16:36:56 1053

原创 《A Tour of C++ Third Edition》2.User-Defined Types

用户自定义类型主要包括class和枚举,结构体联合体等等就不说了。

2023-12-21 14:45:24 360

原创 《A Tour of C++ Third Edition》1. The Basics

本章讲的大多是C中的语言特性,也就是过程式编程的特性,包括表记、内存模型、计算以及组织代码的方式同一个可执行程序在不同操作系统上是不可以运行的,由于文件系统的原因,exe文件在Linux上无法运行等。当我们讨论时,我们讨论的是souce codeC++标准定义了语言中两种实体:核心语言特性,包括char、int等内置类型和循环等特性标准库组件,包括容器、IO操作等C++是语言,编译期所有实体的静态类型都需要确定,因为类型决定了操作和内存占用这是最短的一段C++代码。

2023-12-21 13:47:35 1042

原创 第十五章 面向对象程序设计

前面说过OO三大特性是封装继承和多态继承的优点:继承允许子类继承父类的属性和方法,从而促使代码重用。这减少了代码的重复性,提高了开发效率。继承创建了一个类的层次结构,使得对象之间的关系更加清晰和有序。这有助于更好地组织和管理代码。继承是实现多态性的一种方式,允许子类重写父类的方法,从而可以在运行时选择调用哪个方法,实现不同的行为。继承的缺点:继承引入了类之间的紧耦合关系。子类通常依赖于父类的实现细节,这可能导致代码难以维护和扩展。长时间的继承链可能会变得复杂,难以理解。

2023-10-09 19:21:36 58 1

原创 第十三章 拷贝控制

这一章可以接着第七章看,是对类这一设计的补充。

2023-10-07 21:32:35 55 1

原创 第十二章 动态内存

动态-dynamic,一般在C/C++里指的是程序运行过程中产生的、经常改变的相对于静态对象而言,动态对象的生存周期编译器不能确定,由写程序的人主动管理,即创建、使用、销毁应当由程序员手动完成从大量实践来看,动态对象的释放是最容易出错的地方,具体到C++里就是这种使用堆空间的对象以及的问题。

2023-09-28 16:48:40 131

原创 第十一章 关联容器

key_type不用解释,mapped_type就是map中value的类型,而value_type则看容器实现。erase有删除指定key的版本,返回值是删除的元素数量,若为0则说明元素不在容器里。如果不需要对key进行排序或者哈希可以解决存储问题,无序容器通常比有序容器使用代价小。有序容器的第二个模板参数就是一个用来比较的函数对象,默认是less()下标为容器中不存在的key时将添加元素,这点和顺序容器、数组都不一样。由于key不允许改变,指向const部分的都是const迭代器。

2023-09-25 22:58:20 105 1

原创 第十章 泛型算法

函数内对1和11自增,但是不会影响main函数的n1,n1作为成员变量现在是2,会影响n2,因为传进来的是ref(n2),n2现在是12,无论类内还是main函数都是12。splice的意思是接续、拼接,感觉和insert的效果类似,但看时间复杂度是常数时间,且splice。举例说明,占位符_1占住了check_size的第一个参数的位置,也就是check6的第一个参数;改变元素链接比交换值更快)算法的接口是迭代器,因此算法和迭代器类型强关联,算法都规定了迭代器的最低等级。

2023-09-24 00:48:44 170 1

原创 第九章 顺序容器

练习9.13类型不一样时需要使用迭代器确定初始化的值来源范围。

2023-09-20 19:17:34 113 1

原创 第八章 IO库

书的8-12章都在讲标准库C++对IO设备进行了抽象,以流的方式看待数据在程序和文件、控制台(外设)的流转本章讲基本内容,14、17章会继续丰富这一章的内容。

2023-09-14 19:08:32 57 1

原创 第七章 类

举了一个拥有如下接口的例子,依次为主线贯穿本章学习定义了成员函数combine和isbn,还有add、read和print没有定义这些概念上相关但不能设计进接口的函数把他叫辅助函数,一般也放在类的头文件里1、考察read和print函数有两点需要注意:IO类不允许拷贝,IO操作也会改变流,因此只能写成引用类型;print函数不换行,由用户决定是否换行2、考察add函数自定义操作尽量和操作符行为一致,这里返回一个临时对象的拷贝,类似于+操作符返回一个右值。

2023-09-14 15:26:52 42 1

原创 第六章 函数

举一个简单例子:计算阶乘。

2023-09-11 15:44:22 108

原创 第五章 语句

其中复合语句又叫作块,也有区分作用域的作用这一小节提到了空语句、复合语句;

2023-09-09 19:49:37 51

原创 第四章 表达式

字面值、变量、算术和逻辑运算式都属于表达式。

2023-09-07 16:17:07 45

原创 第三章 字符串、向量和数组

默认初始化string s1拷贝初始化string s3=string(10,'c')//其实有临时匿名对象作中介直接初始化默认初始化拷贝初始化列表初始化值初始化vector v7(3)//{0,0,0}内置类型为0,类默认初始化练习3.12(a)正确,ivec为空容器(c)正确,svec为10个"null"string(b)错误,容器元素类型不同不可以拷贝练习3.13花括号提供的值不能进行列表初始化时,将尝试进行值初始化,如v6和v7。

2023-09-06 17:04:50 78

原创 第二章 变量和基本类型

定义与 ODR (单一定义规则) - cppreference.com这里讲的比较详细,除了列出的一些情况之外都属于定义简单概括就是声明只是让编译器知道了对象的类型和名字,定义才进行分配内存的工作(可能附带初始化),未定义的对象无法使用,因为没有分配内存(反过来说,能使用的都已经定义过了)extern关键字可以用来分离声明和定义练习2.11练习2.12只有e合法练习2.39。

2023-09-03 22:40:00 123

原创 第一章 开始

tips]2018-08-08 关于c++ primer 1.6节 Sales_item.h 头文件 在VS2015社区版(免费)中的相关问题及解决办法_orbit_of_photon的博客-CSDN博客(编译书中代码问题可见此文章)练习1.22int main()std::cout

2023-08-31 15:21:19 49 1

空空如也

空空如也

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

TA关注的人

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