自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 对象模型 第三章 Data语意学

对于下述类和继承计算上述每个类所占内存空间如下对于上述每个类的大小的讨论一个空的class,如x,sizeof(X)==1。事实上虽然X中无任何数据,但他有一个隐晦的1byte,那是被编译器安插进去的一个char,这使得这个类的两个对象得以在内存中配置独一无二的地址。x和y和z的对象布局接下来计算A的大小正常下,A应该是16bytes,但确是12bytes一个虚基类子对象只会在派生类中存在一份实体,不管他在类的继承体系中出现了多少此,类A的大小由如下几点决定。...

2022-07-25 11:21:11 331 1

原创 C++ 对象模型 第二章 构造函数语意学

目录2.1 默认构造函数的建构操作2.2复制构造函数的建构操作2.2.1 位逐次拷贝2.2.2 不进行位逐次拷贝2.2.3 重新设定虚函数表的指针2.3 成员们的初始化队伍 以下四种情况下编译器会合成默认构造函数 (1)带有默认构造函数的成员类对象 如果一个类中没有任何构造函数,但他内含一个成员对象,而后者存在默认构造函数,则编译器会为此类合成一个默认构造函数。不过该合成操作只有在构造函数真正需要被调用时才会发生。 例如下述类 Ba

2022-07-14 11:14:13 282

原创 C++ 对象模型 第一章 关于对象

目录1.1 C++对象模式1.1.1简单对象模型 1.1.2 表格驱动对象模型1.1.3 C++对象模型1.2 关键词所带来的差异1.2.1 struct和class的区别1.3 对象的差异1.3.1 指针类型 例如下述对象 对于上述对象的塑模,存在以下几种方式 尽量降低C++编译器的设计复杂度,赔上了空间和执行期的效率,一个object是一系列的slots,每一个slots指向一个menmbers。Members按其声明次序,各被指定一个slot。每一个dat

2022-07-11 10:44:06 319

原创 C++ primer 第十六章 模板与泛型编程

目录16.1 定义模板16.1.1 函数模板16.1.2 类模板 16.1.3 模板参数 16.1.4 成员模板16.2 模板实参推断 16.2.1 类型转换与模板类型参数 16.2.2 函数模板显示实参16.3 可变模板参数16.3.1 编写可变参数函数模板 模板定义以关键字template开始,后跟一个模板参数列表,这是一个都好分割的一个或多个模板参数的列表。 (1)实例化函数模板 调用函数模板时,编译器用函数实参来为我们推断模板实参。

2022-07-08 17:18:51 659

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

目录15.1 定义基类和派生类 15.1.1 定义基类15.1.2 定义派生类15.1.3 类型转换与继承 15.2 虚函数 15.3 抽象基类15.4 访问控制与继承 15.5 继承中的类作用域15.6 构造函数与拷贝控制15.6.1 虚析构函数 15.6.2 合成拷贝控制与继承15.7 容器与继承 (1)成员函数与继承 在c++语言中,基类必须将他的两种函数区分开来:一种是基类希望其派生类进行覆盖的函数,另一种是基类希望派生类直接继承而不要改变的函数。对于前者,

2022-07-06 16:48:01 516

原创 C++ primer 第十四章 重载运算与类型转换

目录14.1 基本概念14.2 输入和输出运算符14.2.1 重载输出运算符 14.3 算术和关系运算符 14.3.1 相等运算符14. 4 赋值运算符14.5 下标运算符 重载运算符函数的参数数量与该运算符作用的运算对象数量一样多 输入输出运算符必须是非成员函数 输出运算符的第一个形参是一个非常量ostream对象的引用,第二个形参一般是一个常量的引用,该常量是我们想要打印的类类型。operator...

2022-07-04 16:07:21 455

原创 C++ primer 第十三章 拷贝控制

定义一个类时,我们显式地或隐式地指定在此类型的对象的拷贝、移动、赋值和销毁时做什么,一个类通过定义五种特殊的成员函数来控制这些操作,包括:拷贝构造函数,拷贝赋值运算符,移动构造函数,移动赋值运算符和析构函数。 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。 如果没有为类定义拷贝构造函数,则编译器会自动为我们定义,且会从给定对象中依次将每个非static成员拷贝到正在创建的对象中。 拷贝初始化在下述情况下也

2022-07-04 10:31:13 605

原创 C++ primer 第十一章 关联容器

目录11.1 使用关联容器11.2 关联容器概述11.2.1 定义关联容器11.2.2 pair类型11.3 关联容器操作 11.3.1 关联容器迭代器11.3.2 添加元素11.3.3 删除元素11.3.4 map的下标操作11.3.5 访问元素 两个主要的关联容器为map和set,map中元素是一些关键字—值对,关键字起索引的作用,值则表示与索引相关联的数据。set中每个元素只包含一个关键字,set支持高效的关键字查询操作——检查一个给定关键字是否在set中。 允许重复关键字

2022-06-28 10:34:50 224

原创 C++ primer 第十章 泛型算法

目录10.1 初识泛型算法10.1.1 只读算法 10.1.2 写容器算法10.2 定制操作 10.2.1 lambda表达式 10.2.2 lambda捕获和返回10.3 再探迭代器10.3.1 插入迭代器10.3.2 iostream迭代器10.3.3 反向迭代器 只读取输入范围内的函数,不改变元素,find,accumula也是如此(1)accumulate算法为求和算法,前两个参数指出求和元素范围,第三个是和的初值,例: int sum=accumulate(v.beg

2022-06-27 19:16:14 435

原创 C++ primer 第九章 顺序容器

定义:一个容器就是一个特定类型对象的集合。(1)顺序容器类型 vector:可变数组大小,支持快速访问 deque:双端队列,支持快速随机访问,在头尾位置插入/删除速度很快 forward_list:单向链表,只支持单向顺序访问。 array:固定大小数组,不能添加或删除元素 string:和vector类似,用来保存字符 迭代器范围由一对迭代器表示,,通常被称为begin和end,而end从来都不会指向范围中的最后一个元素

2022-06-27 09:54:03 563

原创 C++ primer 第七章 类

7.1 定义抽象数据类型7.1.1 初探this和struct Sales_data{ string isbn(){return bookNo;} Sales_data & combine(const Sales_data&); double avg_price() const; string bookNo; unsigned units_sold=0; double revenue=0;};Sales_data total;

2021-11-01 11:40:17 240

原创 C++primer 第六章 函数

目录6.1 调用函数6.1.1 局部静态对象6.2 参数传递6.2.1 传值参数 6.2.2 传引用参数6.2.3 数组形参6.2.4 含有可变形参的函数 6.3 返回类型和return语句 6.3.1 有返回值函数 6.3.2 返回数组指针 6.4 函数重载6.4.1 重载与作用域6.5 特殊用途语言特性 6.5.1 内联函数和constexpr函数 函数调用主要完成两项工作:用实参初始化函数对应的形参,将控制权转移给被调用函数。 return语句完成的工作:返回re

2021-10-28 10:17:08 385

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

3.1 标准库string string为可变长字符序列3.1.1 初始化string对象的方式string s1 默认初始化,s1为一个空串 string s2(s1) s2是s1的副本 string s2=s1 string s3("value") string s3="value" string s4(n,'c') 把s4初始化为由连续n个字符c组成的串 3.1.2 string...

2021-10-23 15:47:21 98

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

2.1基本内置类型 c++的基本数据类型包括算术类型和空类型,其中算术类似包含字符,整型数,布尔值和浮点数。2.1.1 带符号类型与无符号类型 带符号类型可以表示正数,负数或0,无符号类型只能表示大于0的值 类型int,short,long都是带符号的,可在这些类型名前加unsigned得到无符号类型。2.1.2 字面值常量 一个形如42的值被称为字面值常量,这样的值一望而知,每个字面值常量对应一种数据类型。2.2变量2.2...

2021-10-22 10:18:53 366

原创 c++primer 第十二章 动态内存

目录12.1 动态内存与智能指针12.1.1 shared_ptr类12.1.2 直接管理动态内存12.1.3 shared_ptr和new结合使用12.1.4 智能指针和异常12.1.5 unique_ptr12.1.6 weak_ptr12.2 动态数组12.2.1 new和数组12.2.2 allocator类12.1 动态内存与智能指针 c++中,通过new运算符和delete来管理动态内存,新标准中提供了两种智能指针,智能指针与普.....

2021-10-20 15:09:19 244

空空如也

空空如也

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

TA关注的人

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