C++从入门到精通 C++11/14/17
---------------------------------------🤣 🤩 🤪 🧐 🤯 🥳 🤨 🥰 🤔 --------------------------------------------------
Author: XFFer_
会写程序就好了哪来那么多废话!!!
文章目录
Content
-
一、基本语言
-
01 语言特性、工程构成、可移植性
-
02 命名空间简介、基本输入输出精解
-
03 auto、头文件防卫、引用、常量
-
04 范围for、new内存动态分配、nullptr
-
05结构、权限修饰符、类简介
-
06 函数新特性、内联函数、const详解
-
07 string类型介绍
-
08 vector类型介绍
-
09 迭代器精彩演绎、失效分析及弥补、实战
-
10 类型转换:static_cast、reinterpret_cast等
-
-
二、类
-
01 成员函数、对象拷贝、私有成员
-
02 构造函数详解、explicit、初始化列表
-
03 inline、const、mutable、this、static
-
04 类内初始化、默认构造函数、=default;
-
05 拷贝构造函数
-
06 重载运算符、拷贝赋值运算符、析构函数
-
07 派生类、调用顺序、访问等级、函数遮蔽
-
08 基类指针、虚纯虚函数、多态性、虚析构
-
09 友元函数、友元类、友元成员函数
-
10 RTTI、dynamic_cast、typeid、虚函数表
-
11 基类与派生类关系的详细再探讨
-
12 左值、右值,左值引用、右值引用、move
-
13 临时对象深入探讨、解析,提高性能手段
-
14 对象移动、移动构造函数、移动赋值运算符
-
15 继承的构造函数、多重继承、虚继承
-
16 类型转换构造函数、运算符,类成员指针
-
-
三、模版与泛型
-
01 模版概念,函数模版定义、调用
-
02 类模版概念,类模版定义、使用
-
03 用typename场合、默认模版参数、趣味写法分析
-
04 成员函数模版,显式实例化、声明
-
05 using定义模版别名,显式制定模版参数
-
06 模版全特化、偏特化(局部特化)
-
07 可变参模版
-
08 可变参模版续、模版模版参数
-
-
四、智能指针
-
01 直接内存管理(new/delete)、创建新工程观察内存泄漏
-
02 new、delete探秘,智能指针概述、shared_ptr基础
-
03 shared_ptr常用操作、计数、自定义删除器等
-
04 weak_ptr概述、weak_ptr常用操作、尺寸
-
05 shared_ptr使用场景、陷阱、性能分析、使用建议
-
06 unique_ptr概述、常用操作
-
07 返回unique_ptr、删除器、尺寸、智能指针总结
-
-
五、并发与多线程
-
01 并发基本概念及实现,进程、线程基本概念
-
02 线程启动、结束,创建线程多法、join,detach
-
03 线程传参详解,detach()大坑,成员函数做线程函数
-
04 创建多个线程、数据共享问题分析、案例代码
-
05 互斥量概念、用法、死锁演示及解决详解
-
06 unique_lock详解
-
07 单例设计模式共享数据分析、解决,call_once
-
08 condition_variable、wait、notify_one、notify_all
-
09 async、future、packaged_task、promise
-
10 future其他成员函数、shared_future、atomic
-
11 std::atomic续谈、std::async深入谈
-
12 windows临界区、其他各种mutex互斥量
-
13 补充知识、线程池浅谈、数量谈、总结
-
-
六、内存高级话题
-
01 new、delete的进一步认识
-
02 new细节探秘、重载类内operator new、delete
-
03 内存池概念、代码实现和详细分析
-
04 嵌入式指针概念及范例、内存池改进版
-
05 重载全局new、delete,定位new及重载等
-
-
-
01 STL总述、发展史、组成、数据结构谈
-
02 容器分类、array、vector容器精解
-
03 容器的说明和简单应用例续
-
04 分配器概述、使用,工作原理
-
05 迭代器的概念和分类
-
06 算法概述、内部处理、使用范例
-
07 函数对象回顾、系统函数对象及范例
-
08 适配器概念、分类、范例及总结
-
-
八、未归类知识点
-
01 函数调用运算符、function类模版
-
02 万能引用universal reference
-
03 理解模版类型推断、查看类型推断结果
-
04 引用折叠,转发、完美转发,forward
-
05 理解auto类型推断,auto应用场合
-
06 详解decltype含义,decltype主要用途
-
07 可调用对象、std::function、std::bind
-
08 lambda表达式,for_each、find_if简介
-
09 lambda表达式捕获模式的陷阱分析和展示
-
10 可变参数函数、initializer_list、省略号形参
-
11 萃取(traits)技术概念、范例等
-
一、基本语言
01 语言特性、工程构成、可移植性
-
C语言 <==> C++
-
面向过程式的程序设计 <==> 基于对象/面向对象的程序设计
-
结构体 <==> 类
-
结构变量 <==> 对象
cstdio
是将stdio.h的内容用C++头文件的形式表示出来。
cstdio是标准C++(STL),且cstdio中的函数都是定义在一个名称空间std里面的,如果要调用这个名字空间的函数,必须得加std::或者在文件中声明using namespace std。
02 命名空间简介、基本输入输出精解
1 命名空间概念简介
2 基本输入输出cin、cout精解
命名空间概念简介
命名空间:是为了防止名字冲突而引入的一种机制。系统中可以定义多个命名空间,在不同命名空间内定义的函数,即便同名,也互不影响。
命名空间的定义
namespace 命名空间名
{
...
} //命名空间的定义可以不连续,可以写在一个解决方案的多个.cpp文件内
如何访问命名空间中的对象
命名空间名::实体名
using namespace 命名空间名;
::
叫做作用域运算符
基本输入输出cin、cout精解
iostream
库(输入输出流)
#include <iostream>
std::cout << "我又入坑了";
-
std::命名空间
,std是标准库命名空间 -
cout
(console output),控制台输出,“标准输出”对象 -
<<
:流插入运算符。“输出”运算符,在这里被重载,不是位运算的左移
std::cout << x << "的平方是" << x*x << "\n";
std::cout << x << "的平方是" << x*x << std::endl;
std::endl
是一个模版函数名,相当于函数指针,一般都位于std::cout
语句的末尾
作用:
-
输出换行符
\n
-
强制刷新输出缓冲区
std:cout << "请输入两个数字:" << std::endl;
int value1, value 2;
std::cin