适合人群: 对C语言有一定的掌握希望学习C++语言或对C++98已很熟,希望学习C++11/14/17新标准
¥98.00共43课时
¥498.00共80课时
¥398.00共52课时
本节,老师要讲解如下这些内容:
(1)总述以及基础要求;
(2)简要自我介绍;
(3)c++语言难度和就业问题;
(4)c/c++语言的发展历程;
(5)我们这门课程的讲解遵循哪个c++标准?
(6)c++学习之道和学习忠告;
(7)开发环境安装和设置;
本节课,老师要讲解如下话题:
(1)语言特性:过程式、对象式程序设计;
(2)编写一个最简单的c++程序 ;
(3)工程文件构成;
(4)可移植性问题;
本节课 ,老师要讲解如下话题:
(1)命名空间概念简介;
(2)基本输入输出cin、cout精解;
本节课 ,老师要讲解如下话题:
(1)局部变量及初始化;
(2)auto;
(3)头文件防卫式声明;
(4)引用;
(5)常量;
本节课 ,老师要讲解如下话题:
(1)范围for语句;
(2)动态内存分配问题;
(3)nullptr;
本节课 ,老师要讲解如下话题:
(1)结构回顾;
(2)public和private权限修饰符;
(3)类简介;
(4)类的组织;
本节课 ,老师要讲解如下话题:
(1)函数回顾与后置返回类型;
(2)内联函数;
(3)函数杂合用法总结;
(4)const char * 、char const *、 char * const 三者的区别;
(5)函数形参中带const;
本节课 ,老师要讲解如下话题:
(1)前言;
(2)string类型简介;
(3)定义和初始化string对象;
(4)string对象上的操作;
本节课 ,老师要讲解如下话题:
(1)vector类型简介;
(2)定义和初始化vector对象;
(3)vector对象上的操作;
(3.1)范围for进一步讲解;
本节课 ,老师要讲解如下话题:
(1)迭代器简介;
(2)容器的迭代器类型;
(3)迭代器begin()/end()操作,反向迭代器rbegin()/rend()操作;
(4)迭代器运算符;
(5)const_iterator迭代器;
(5.1)cbegin()和cend()操作;
(6)迭代器失效;
(6.1)灾难程序演示1;
(6.2)灾难程序演示2;
(7)范例演示;
(7.1)用迭代器遍历一下string类型数据;
(7.2)vector容器常用操作与内存释放;
本节课 ,老师要讲解如下话题:
(1)隐式类型转换;
(2)显式类型转换;
(2.1)static_cast;
(2.2)dynamic_cast;
(2.3)const_cast;
(2.4)reinterpret_cast;
(3)总结;
本节课 ,老师要讲解如下话题:
(1)综述;
(2)类基础;
(3)成员函数;
(4)对象的拷贝;
(5)私有成员;
本节课 ,老师要讲解如下话题:
(1)构造函数;
(2)多个构造函数;
(3)函数默认参数;
(4)隐式转换和explicit;
(5)构造函数初始化列表;
本节课 ,老师要讲解如下话题:
(1)在类定义中实现成员函数inline
(2)成员函数末尾的const
(3)mutable
(4)返回自身对象的引用,this
(5)static成员
本节课 ,老师要讲解如下话题:
(1)类相关非成员函数
(2)类内初始化
(3)const成员变量的初始化
(4)默认构造函数
(5)=default;,=delete;
本节课 ,老师要讲解如下话题:
(1)拷贝构造函数;
本节课 ,老师要讲解如下话题:
(1)重载运算符
(2)拷贝赋值运算符
(3)析构函数
a)函数重载
b)构造函数的成员初始化
c) 析构函数的成员销毁
d) new对象和delete对象
本节课 ,老师要讲解如下话题:
(1)派生类概念
(2)派生类对象定义时调用构造函数的顺序
(3)public,protected,private
(4)函数遮蔽
本节课 ,老师要讲解如下话题:
(1)基类指针、派生类指针
(2)虚函数
override
final
(3)多态性
(4)纯虚函数
(5)基类的析构函数一般写成虚函数(虚析构函数)
本节课 ,老师要讲解如下话题:
(1)友元函数
(2)友元类
(3)友元成员函数
本节课 ,老师要讲解如下话题:
(1)RTTI是什么
(2)dynamic_cast运算符
(3)typeid运算符
(4)type_info类
(5)RTTI与虚函数表
本节课 ,老师要讲解如下话题:
(1)派生类对象模型简述
(2)派生类构造函数
(3)既当父类又当子类
(4)不想当基类的类
(5)静态类型与动态类型
(6)派生类向基类的隐式类型转换
(7)父类子类之间的拷贝与赋值
本节课 ,老师要讲解如下话题:
(1)左值和右值
(2)引用分类
(3)左值引用
(4)右值引用
(4.1)右值引用的引入目的
(5)std::move函数
(6)左值右值总结说明
本节课 ,老师要讲解如下话题:
(1)临时对象的概念
(2)产生临时对象的情况和解决
(2.1)以传值的方式给函数传递参数
(2.2)类型转换生成的临时对象/隐式类型转换以保证函数调用成功
(2.3)函数返回对象的时候
本节课 ,老师要讲解如下话题:
(1)对象移动的概念
(2)移动构造函数和移动赋值运算符概念
(3)移动构造函数演示
(4)移动赋值运算符演示
(5)合成的移动操作
(6)总结
本节课 ,老师要讲解如下话题:
(1)继承的构造函数
(2)多重继承
(2.1)多重继承概述
(2.2)静态成员变量
(2.3)派生类构造函数与析构函数
(2.4)从多个父类继承构造函数
(3)类型转换
(4)虚基类,虚继承(虚派生)
(5)总结
本节课 ,老师要讲解如下话题:
(1)类型转换构造函数
(2)类型转换运算符(类型转换函数)
(2.1)显式的类型转换运算符
(2.2)有趣范例:类对象转换为函数指针
(3)类型转换的二义性问题
(4)类成员函数指针
(4.1)对于普通成员函数
(4.2)对于虚函数
(4.3)对于静态成员函数
(5)类成员变量指针
(5.1)对于普通成员变量
(5.2)对于静态成员变量
(6)总结
本节课 ,老师要讲解如下话题:
(1)概述
(2)函数模板的定义
(3)函数模板的使用
(4)非类型模板参数
本节课 ,老师要讲解如下话题:
(1)概述
(2)类模板定义
(3)类模板的成员函数
(4)模板类名字的使用
(5)非类型模板参数
本节课 ,老师要讲解如下话题:
(1)typename的使用场合
(2)函数指针做其他函数的参数
(3)函数模板趣味用法举例
(4)默认模板参数
本节课 ,老师要讲解如下话题:
(1)普通类的成员函数模板
(2)类模板的成员函数模板
(3)模板显式实例化,模板声明
本节课 ,老师要讲解如下话题:
(1)using定义模板别名
(2)显式指定模板参数
本节课 ,老师要讲解如下话题:
(1)类模板特化
(1.1)类模板全特化
a)常规全特化
b)特化成员函数而不是模板
(1.2)类模板偏特化(局部特化)
a)模板参数数量
b)模板参数范围上
(2)函数模板特化
(2.1)函数模板全特化
(2.2)函数模板偏特化
(3)模板特化版本放置位置建议
本节课 ,老师要讲解如下话题:
(1)可变参函数模板
(1.1)简单范例
(1.2)参数包的展开
(2)可变参类模板
(2.1)通过递归继承方式展开参数包
本节课 ,老师要讲解如下话题:
(1)可变参类模板
(1.1)通过递归组合方式展开参数包
(1.2)通过tuple和递归调用展开参数包
(1.3)总结
(2)模板模板参数
本节课 ,老师要讲解如下话题:
(1)直接内存管理(new/delete)
(2)创建新工程,观察内存泄漏
本节课 ,老师要讲解如下话题:
(1)new/delete探秘
(1.1)new,delete是什么?
(1.2)operator new()和operator delete()
(1.3)基本new如何记录分配的内存大小供delete使用
(1.4)申请和释放一个数组
(1.5)为什么 new/delete 、new []/delete[] 要配对使用?
(2)智能指针总述
(3)shared_ptr基础
(3.1)常规初始化(shared_ptr和new配合)
(3.2)make_share
本节课 ,老师要讲解如下话题:
(1)shared_ptr引用计数的增加和减少
(1.1)引用计数的增加
(1.2)引用计数的减少
(2)shared_ptr指针常用操作
(2.1)use_count()
(2.2)unique()
(2.3)reset()
(2.4)*解引用
(2.5)get()
(2.6)swap()
(2.7)= nullptr
(2.8)智能指针名字作为判断条件
(2.9)指定删除器以及数组问题
本节课 ,老师要讲解如下话题:
(1)weak_ptr概述
(1.1)weak_ptr的创建
(2)weak_ptr常用操作
(2.1)use_count()
(2.2)expired()
(2.3)reset()
(2.4)lock()
(3)尺寸问题
本节课 ,老师要讲解如下话题:
(1)std::shared_ptr使用场景
(2)std::shared_ptr使用陷阱分析
(2.1)慎用裸指针
(2.2)慎用get()返回的指针
(2.3)不要把类对象指针(this)作为shared_ptr返回,改用enable_shared_from_this
(2.4)避免循环引用
(3)性能说明
(3.1)尺寸问题
(3.2)移动语义
(4)补充说明和使用建议
本节课 ,老师要讲解如下话题:
(1)unique_ptr概述
(1.1)常规初始化(unique_ptr和new配合)
(1.2)make_unique函数
(2)unique_ptr常用操作
(2.1)unique_ptr不支持的操作
(2.2)移动语义
(2.3)release()
(2.4)reset()
(2.5)= nullptr
(2.6)指向一个数组
(2.7)get()
(2.8)*解引用
(2.9)swap()
(2.10)智能指针名字作为判断条件
(2.11)转换成s
本节课 ,老师要讲解如下话题:
(1)返回unique_ptr
(2)指定删除器
(3)尺寸问题
(4)智能指针总结
(4.1)智能指针背后的设计思想
(4.2)auto_ptr为什么被废弃
(4.3)智能指针的选择
本节课 ,老师要讲解如下话题:
(1)并发、进程、线程的基本概念和综述
(1.1)并发
(1.2)可执行程序
(1.3)进程
(1.4)线程
(1.5)学习心得
(2)并发的实现方法
(2.1)多进程并发
(2.2)多线程并发
(2.3)总结
(3)C++11新标准线程库
本节课 ,老师要讲解如下话题:
(1)范例演示线程运行的开始和结束
(1.1)thread
(1.2)join()
(1.3)detach()
(1.4)joinable()
(2)其他创建线程的手法
(2.1)用类,以及一个问题范例
(2.2)用lambda表达式
本节课 ,老师要讲解如下话题:
(1)传递临时对象作为线程参数
(1.1)要避免的陷阱 (解释1)
(1.2)要避免的陷阱 (解释2)
(1.3)总结
(2)临时对象作为线程参数继续讲
(2.1)线程id概念
(2.2)临时对象构造时机抓捕
(3)传递类对象、智能指针作为线程参数
(4)用成员函数指针做线程函数
本节课 ,老师要讲解如下话题:
(1)创建和等待多个线程
(2)数据共享问题分析
(2.1)只读的数据
(2.2)有读有写
(2.3)其他案例
(3)共享数据的保护案例代码
本节课 ,老师要讲解如下话题:
(1)互斥量(mutex)的基本概念
(2)互斥量的用法
(2.1)lock(),unlock()
(2.2)std::lock_guard类模板
(3)死锁
(3.1)死锁演示
(3.2)死锁的一般解决方案
(3.3)std::lock()函数模板
(3.4)std::lock_guard的std::adopt_lock参数
本节课 ,老师要讲解如下话题:
(1)unique_lock取代lock_guard
(2)unique_lock的第二个参数
(2.1)std::adopt_lock
(2.2)std::try_to_lock
(2.3)std::defer_lock
(3)unique_lock的成员函数
(3.1)lock()
(3.2)unlock()
(3.3)try_lock()
(3.4)release()
(4)unique_lock所有权的传递
本节课 ,老师要讲解如下话题:
(1)设计模式大概谈
(2)单例设计模式
(3)单例设计模式共享数据问题分析、解决
(4)std::call_once()
本节课 ,老师要讲解如下话题:
(1)条件变量std::condition_variable、wait()、notify_one()
(2)上述代码深入思考
(3)notify_all()
本节课 ,老师要讲解如下话题:
(1)std::async、std::future创建后台任务并返回值
(2)std:: packaged_task
(3)std:: promise
(4)小结
本节课 ,老师要讲解如下话题:
(1)std::future的其他成员函数
(2)std::shared_future
(3)原子操作std::atomic
(3.1)原子操作概念引出范例
(3.2)基本的std:: atomic用法范例
(3.3)老师的心得
本节课 ,老师要讲解如下话题:
(1)原子操作std::atomic续谈
(2)std::async深入谈
(2.1)std::async参数详述
(2.2)std::async和std::thread的区别
(2.3)std::async不确定性问题的解决
本节课 ,老师要讲解如下话题:
(1)windows临界区
(2)多次进入临界区试验
(3)自动析构技术
(4)recursive_mutex递归的独占互斥量
(5)带超时的互斥量std::timed_mutex和std::recursive_timed_mutex
本节课 ,老师要讲解如下话题:
(1)补充一些知识点
(1.1)虚假唤醒
(1.2)atomic
(2)浅谈线程池
(2.1)场景设想
(2.2)实现方式
(3)线程创建数量谈
(4)c++11多线程总结
本节课 ,老师要讲解如下话题:
(1)总述与回顾
(2)从new说起
(2.1)new类对象时加不加括号的差别
(2.2)new干了啥
(2.3)malloc干了啥
(2.4)总结
本节课 ,老师要讲解如下话题:
(1)new内存分配细节探秘
(2)重载类中的operator new和operator delete操作符
(3)重载类中的operator new[]和operator delete[]操作符
本节课 ,老师要讲解如下话题:
(1)内存池的概念和实现原理概述
(2)针对一个类的内存池实现演示代码
(3)内存池代码后续说明
本节课 ,老师要讲解如下话题:
(1)嵌入式指针
(1.1)嵌入式指针概念
(1.2)嵌入式指针演示代码
(2)内存池代码的改进
本节课 ,老师要讲解如下话题:
(1)重载全局operator new和operator delete操作符
(2)定位new(placenment new)
(3)多种版本的operator new重载
本节课 ,老师要讲解如下话题:
(1)几个概念
(2)推荐书籍
(3)算法和数据结构谈
(3.1)数据结构浅谈
(3.2)数据结构学习方法
(3.3)推荐书籍
(4)STL发展史和各个版本
(5)标准库的使用说明
(6)STL的组成部分
本节课 ,老师要讲解如下话题:
(1)容器的分类
(2)容器的说明和简单应用例
(2.1)array
(2.2)vector
本节课 ,老师要继续讲一讲其他容器,讲解如下话题:
(1)deque和stack
(2)queue
(3)list
(4)其他
(4.1)forward_list
(4.2)set/map
(4.3)unordered_set,unordered_multiset等
本节课 ,老师要讲解如下话题:
(1)分配器概述
(2)分配器的使用
(3)其他的分配器及原理说
(4)自定义分配器
本节课 ,老师要讲解如下话题:
(1)迭代器基本概念
(2)迭代器的分类
本节课 ,老师要讲解如下话题:
(1)算法概述
(2)算法内部一些处理
(3)一些典型算法使用范例
(3.1)for_each
(3.2)find
(3.3)find_if
(3.4)sort
本节课 ,老师要讲解如下话题:
(1)函数对象/仿函数回顾
(2)标准库中定义的函数对象
(3)标准库中定义的函数对象范例
本节课 ,老师要讲解如下话题:
(1)适配器基本概念
(2)容器适配器
(2.1)stack
(2.2)queue
(3)算法适配器
(3.1)绑定器
(4)迭代器适配器
(4.1)reverse_iterator
(5)总结
本节课 ,老师要讲解如下话题:
(1)学习c++体会、总述
(2)不同调用对象的相同调用形式
(3)标准库function类型介绍
(4)总结
本节课 ,老师要讲解如下话题:
(1)类型区别基本概念
(2)universal reference/万能引用/未定义引用 基本认识
(3)万能引用资格的剥夺与辨认
本节课 ,老师要讲解如下话题:
(1)如何查看类型推断结果
(2)理解模板类型推断
(2.1)指针或者引用类型
(2.2)万能引用
(2.3)传值方式
(2.4)数组做实参
(2.5)函数名做实参
本节课 ,老师要讲解如下话题:
(1)引用折叠 规则
(1.1)引用的引用
(2)转发、完美转发
(3)std::forward
(4)std::move和std::forward的区别
(5)再谈万能引用
本节课 ,老师要讲解如下话题:
(1)std::forward用法补充
(2)auto类型常规推断
(3)auto类型针对数组和函数的推断
(4)auto类型std::initializer_list的特殊推断
(5)auto不适用场合举例
(6)auto适用场合举例
本节课 ,老师要讲解如下话题:
(1)decltype含义和举例
(1.1)decltype后的圆括号中是个变量
(1.2)decltype后的圆括号中非变量(是表达式)
(1.3)decltype后的圆括号中是函数
(2)decltype主要用途
(2.1)应付可变类型
(2.2)通过变量表达式抽取变量类型
(2.3)auto结合decltype构成返回类型后置语法
(2.4)decltype(auto)用法
a)用于函数返回类型
b)用于变量声明中
(3)总结
本节课 ,老师要讲解如下话题:
(1)可调用对象
(1.1)函数指针
(1.2)具有operator()成员函数的类对象(仿函数)
(1.3)可被转换为函数指针的类对象
(1.4)类成员函数指针
(1.5)总结
(2)std::function(可调用对象包装器)
(2.1)绑定普通函数
(2.2)绑定类的静态成员函数
(2.3)绑定仿函数
(2.4)小范例演示
(3)std::bind绑定器
(4)总结
本节课 ,老师要讲解如下话题:
(1)用法简介
(2)捕获列表
(3)lambda表达式延迟调用易出错细节分析
(4)lambda表达式中的mutable
(5)lambda表达式的类型及存储
(5.1)语法糖概念
(6)lambda表达式再演示和优点总结
(6.1) for_each简介
(6.2) find_if简介
本节课 ,老师要讲解如下话题:
(1)捕获列表中的&
(2)形参列表可以使用auto
(3)成员变量的捕获问题
(4)广义lambda捕获
(5)静态局部变量
本节课 ,老师要讲解如下话题:
(1)可变参数函数
(2)initializer_list(初始化列表)
(2.1)begin(),end()遍历、size()获取元素个数
(2.2)拷贝和赋值
(2.3)初始化列表做构造函数参数
(3)省略号形参(…)
本节课 ,老师要讲解如下话题:
(1)类型萃取概述
(2)类型萃取范例
(3)迭代器萃取概述
(4)总结
本章就这一节;老师要讲如下几个主题:
(1)本人和学员对本课程的评价
(2)学习之道和未来的方向
(3)学历谈
(4)创业谈
共255节 · 101小时5分钟
¥150.0040683人在学
共54节 · 31小时8分钟套餐优惠
¥118.0026855人在学
共52节 · 35小时15分钟套餐优惠
¥398.0015847人在学
共140节 · 26小时26分钟
¥268.0015032人在学
评价
给该课程打分: