随笔分类 - C++
摘要:shared_future、async、packaged_task、promise、future、atomic、CAS、condition_variable、condition_variable_any、unique_lock、recursive_timed_mutex、this_thread、hardware_concurrency、yeild、sleep_for、sleep_until、wait_for、wait_until、duration、time_point、system_clock、steady_clock、
阅读全文
摘要:目录<future>future模板类成员函数:promise类promise的使用例程:packaged_task模板类例程:async模板函数例程:shared_future模板类 <future> 标准库提供了一些工具来获取异步任务(即在单独的线程中启动的函数)的返回值,并捕捉其所抛出的异常。
阅读全文
摘要:目录<condition_variable>condition_variable类类方法生产者消费者模型 -- 阻塞队列单条件变量版condition_variable_any模板类区别优缺点 <condition_variable> 条件变量是C++11提供的另外一种用于等待的同步机制,它能阻塞一
阅读全文
摘要:目录<mutex>std::call_once函数例程:使用call_once实现的单例模式std::mutex类 -- 独占互斥锁成员函数std::recursive_mutex类 -- 递归互斥锁使用注意:描述:std::timed_mutex类 -- 超时互斥锁描述:成员函数:std::rec
阅读全文
摘要:目录<atomic>原子操作的概念CAS实现原理CAS操作的伪代码:使用CAS完成变量的原子操作:CAS 操作的保证lock和锁的概念atomic模板类构造函数公共成员函数:atomic与互斥锁的效率比对 <atomic> C++11提供了一个原子类型std::atomic,通过这个原子类型管理的内
阅读全文
摘要:目录<thread>this_thread命名空间1. get_id()2. sleep_for()3. sleep_until()4. yield()thread类构造函数:类方法1. get_id()2. join()3. detach()4. joinable()5. operator=6.
阅读全文
摘要:目录<chrono>时间间隔duration常用的duration时间点time_point时钟system_clock & steady_clocksystem_clock代码举例steady_clock例程:转换函数1.duration_castDescription:duration支持隐式转
阅读全文
摘要:目录智能指针场景引入 - 为什么需要智能指针?内存泄漏什么是内存泄漏内存泄漏的危害内存泄漏分类如何避免内存泄漏智能指针的使用及原理RAII简易例程智能指针的原理智能指针的拷贝问题智能指针的发展历史std::auto_ptr模拟实现auto_ptr例程:这种方案存在的问题:Boost库中的智能指针un
阅读全文
摘要:
目录一、多态基础虚函数虚函数的继承虚类/虚基类重写/覆盖条件:概念:多态的条件其他的多态行为多态中子类可以不写virtual协变代码举例继承遗留问题解决析构函数具体解决方式:题目1答案:解析:题目2答案:C++11 override和finalfinal功能1:禁用继承使用场景:功能2:禁用重写使用
阅读全文

摘要:/** 多态/动态调用 * * * 1.虚函数/虚拟函数 * 语法:在函数前面加上virtual * * 1.1虚函数与虚继承没有关系,只是共用了关键字 * * 2.重写/覆盖:虚函数且函数名字类型等完全一样 * $注:虚函数是覆盖,不是虚函数才构成隐藏 * $重写:指对函数体重写,函数体外的是直接
阅读全文
摘要://继承/** * 继承受权限影响 * 有public protected private 三种继承 * * 基本语法: * class student : public Person * { * * 详细:跳转20inheritance -- C++NO.23 -- 3_27 * */ //继承和
阅读全文
摘要:C类型转换 C语言:显式和隐式类型转换 隐式类型转化:编译器在编译阶段自动进行,能转就转,不能转就编译失败 显式类型转化:需要用户自己处理. 隐式类型:界定:相关类型,相近类型,意义相似的类型 可以发生类型转换 , 如整型和浮点可以发生类型转换,因为他们都表示数据的大小. 指针和整型不能发生,因为指
阅读全文
摘要:#pragma once // 1. 设计一个不能被拷贝的类/* 解析:拷贝只会放生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝, 只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C++98; 将拷贝构造函数与赋值运算符重载只声明不定义,并且将其访问权限设置为私有即
阅读全文
摘要:#pragma once /*Smart pointer 智能指针;灵巧指针 智能指针三大件//1.RAII//2.像指针一样使用//3.拷贝问题 ,指针指针需要的是浅拷贝,并且需要处理资源释放问题 > 引用计数 RAIIResource Acquisition Is Initialization
阅读全文
摘要://异常的概念/*抛出异常后必须要捕获,否则终止程序(到最外层后会交给main管理,main的行为就是终止) try{}内写可能会抛出异常的代码.catch(类型){处理} 写异常类型和异常处理 抛出的异常对象是自动遍历所有栈帧,直到main的 多层栈帧中,try跳转从上到下最近的catch 跳转的
阅读全文
摘要:/** C++11 * 默认成员函数 原来C++类中,有6个默认成员函数: 构造函数 析构函数 拷贝构造函数 拷贝赋值重载 取地址重载 const 取地址重载 最后重要的是前4个,后两个用处不大。默认成员函数就是我们不写编译器会生成一个默认的。 C++11新增了两个构造函数,分别是 1.移动构造 2
阅读全文
摘要://字符串字面量/*常用:1.原始字符串字面量 括号内保持原样输出 没有转义字符,如\n不再是换行,而是直接输出字面量\nR"(str)"; 实例: R"(aa\a"b"bb)"; //print: aa\a"b"bb 注意:const char* s1 = R"foo(Hello World)fo
阅读全文