随笔分类 - 欢乐C++系列
1
摘要:tuple 类似与pair,tuple 可以有任意数量的成员。当我们想将一些数据简单组合在一起,又不想定义新的数据结构,那么此时使用 tuple 定义在头文件 #include <iostream> #include <algorithm> #include <tuple> using namesp
阅读全文
摘要:参考: https://blog.csdn.net/k346k346/article/details/49500635 分离式编译与函数模板 https://www.cnblogs.com/QG-whz/p/5132745.html 编译期多态与运行期多态 简述 面向对象 和 泛型编程 都能处理在编
阅读全文
摘要:参考: https://www.cnblogs.com/QG-whz/p/5132745.html 简述 还记得我们之前写的编译期多态与运行期多态吗?继承是运行期多态的基石。下一节则是模板,编译期多态的基础。 运行期多态 优点 OO设计中重要的特性,对客观世界直觉认识。 能够处理同一个继承体系下的异
阅读全文
摘要:https://corecppil.github.io/CoreCpp2019/Presentations/Dan_Saks_Lvalues_and_Rvalues.pdf 简述 原版PPT 有31页,我主要摘取几个重要的点。 下面所说的对象都是广义的对象(object) 一个int float 都
阅读全文
摘要:简介 重载的运算符,其实是有特殊名字的函数。运算符重载的基本思想是为了使类类型的运算和内置类型保持一致。以下是几个准则: 一个重载的运算符函数至少要有一个类类型,不能为基本类型重定义运算操作 若没有类类型参数,运算符重载就没有任何意义。 大部分运算符都可重载,不能重载的运算符有四种:作用域运算符::
阅读全文
摘要:本文测试内容大部分都是参考该博文 https://www.cnblogs.com/cposture/p/4925736.html 该博文作者深入汇编,写的十分详细。此文精简一下,并且补充一些东西。 简述 问题的根源在于从另一种角度看构造函数,相当于定义了从其它类型向该类转化的途径。 先简单看看直接初
阅读全文
摘要:简述 当定义一个类时,我们会显式或隐式地指定此类型的对象构造,拷贝,移动,赋值,和销毁操作。 其中,拷贝构造和移动构造决定了当用同类型的另一个对象初始化新对象时做了什么;拷贝赋值和移动赋值运算符决定了当将一个对象赋值给另一个同类型对象时做了什么。 当一个类没有定义这些操作时,某些情况下编译器会默认为
阅读全文
摘要:参考: https://www.cnblogs.com/yulei0713/p/11326254.html 对象创建过程 https://www.cnblogs.com/fzz9/p/8973315.html 面向对象的特点 类是什么 从面向对象的角度来说,c++中的类是生成对象的模板。因为现实世界
阅读全文
摘要:简介 一般而言程序使用动态内存有以下几种场景: 程序不知道自己需要多少对象。 程序不知道所需对象的准确类型。 程序需要在多个对象之间共享数据。 容器是由于第一种原因而使用动态内存的典型例子,第二种原因和继承有关,这节课主要跟第三个原因有关。 到现在,我们的都是手动的管理动态内存,手动调用new,并且
阅读全文
摘要:简述 在之前的顺序容器概览中,已经简单的介绍了STL 和容器的概念,这节主要看看基础的关联容器操作。 关联容器与顺序容器的主要区别:1. 关联容器中的元素是按关键字保存并访问元素,而顺序容器的元素是按照它们在容器中的位置来顺序保存和访问的。2. 关联容器保存的是 键值对 或 键,而顺序容器存放的是
阅读全文
摘要:简介 顺序容器实际上只定义了一小部分操作:添加元素,删除元素,获取迭代器等等。而像一些查找特定元素,或删除特定值的元素等行为都是通过一组泛型算法实现。 像标准库sort 函数就是泛型算法,其不但可以对数组排序,也可以对不同类型的容器排序。大多数算法都定义在 少数跟数值相关的操作定义在 辅助这些算法的
阅读全文
摘要:参考: http://c.biancheng.net/view/6967.html 适配器 http://c.biancheng.net/cplus/80/ STL 和容器 简述 简单说一下C++的容器,这节主要介绍常见的顺序容器的操作。 STL 标准库 C++ 语言的核心优势之一就是便于代码的重用
阅读全文
摘要:简介 看看C++ 的IO 方法,关于C 的 IO 请见 https://www.cnblogs.com/starrys/p/12008562.html 这块只是简单了解一下有个印象,以后用到的时候就知道该查哪个方面。 概览 标准库定义了三种IO类型,分别包含在三个头文件: 后两种IO 流都是继承自
阅读全文
摘要:深拷贝,浅拷贝 简述 通俗点讲,深复制与浅复制一般对指针而言,深拷贝复制指针所指向的内容,浅拷贝复制指针的值。 举例 当我们有现在有指针A指向一块数据,和指针B。那么经过深浅拷贝后它们的关系如下。 深拷贝 —— B拥有了A的数据拷贝副本。浅拷贝—— B只是简单的复制了A指针的值。 深浅复制的优缺点
阅读全文
摘要:返回类型 如果是返回 值的形式,那么编译器会创建临时对象,并利用返回值来初始化这个对象。 但如果是类类型的话有时会优化掉这个临时对象。 尾置返回类型:将返回类型放到形参后面,这样对于返回复杂类型来说看上去更清晰。 例如 auto fun()->int; 声明函数 fun 不接受参数,并且返回 int
阅读全文
摘要:try-catch 异常是指在运行时的反常行为,其行为超出函数正常功能范围。当程序的某个模块检测到它无法处理的问题时,就需要用到异常处理。异常处理机制分为异常检测,异常处理两部分。 在C++ 中,异常处理包括: throw 表达式,异常检测使用throw 表达式来表明它遇到了无法处理的问题。 try
阅读全文
摘要:参考: 《C++ Primer》 p59 constexpr https://en.cppreference.com/w/cpp/language/constexpr constexpr 声明与定义 变量名,函数名等在编译中统称为符号 符号的声明与定义:为了支持分离式编译(即可以将程序划分为多个文件
阅读全文
摘要:参考: https://www.modernescpp.com/index.php/objectoriented-generic-and-functional-programming https://www.cnblogs.com/QG-whz/p/5132745.html 简介 在学C++ 之前,
阅读全文
摘要:本专栏主要记录个人学习C++过程。: ) 一般而言,如果有搜集到别的博文叙述清晰,有条理,会直接贴上别的博文地址,如果引用了别的资料,会在参考栏给出。 会持续更新,包括已完成的博文也会持续优化。 有用的资源: 《C++ Primer 第五版》 C++ 文档 这个只包括 C++ 11 标准,主要按C+
阅读全文
摘要:在复制构造函数中的引用符,时有时不有,初学时不易理解,做点小归纳: 预备知识: 当类中没有定义 任何构造函数 (包括复制构造函数)时,编译器将生成 默认构造函数 当类中没有定义 复制构造函数 时,编译器将生成 默认复制构造函数 !!!浅复制 —— https://www.cnblogs.com/st
阅读全文
1

浙公网安备 33010602011771号