摘要: 如果不等待线程, 就必须保证线程结束之前, 可访问的数据得有效性。 这种情况很可能发生在线程还没结束, 函数已经退出的时候, 这时线程函数还持有函数局部变量的指针或引用。 struct func { int& i; func(int& i_) : i(i_) {} void operator() ( 阅读全文
posted @ 2024-03-24 20:41 小熊酱 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 线程在 std::thread 对象创建(为线程指定任务)时启动。 最简单的情况下, 任务也会很简单, 通常是无参数无返回(void-returning)的函数 。 使用C++线程库启动线程, 可以归结为构造 std::thread 对象: void do_some_work(); std::thr 阅读全文
posted @ 2024-03-24 20:32 小熊酱 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1. 可执行文件的生成 源代码到可执行文件的生成可分为预处理(Prepressing)、编译(Compilation)、汇编(Assembly)和链接(Linking),四个步骤。 1.1 预处理 以 C 语言为例,预处理主要是处理源代码中以“#”开头的那些预处理指令,规则如下: 将所有 “#def 阅读全文
posted @ 2024-03-21 19:23 小熊酱 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 背景:静态链接库一旦链接进去,代码和变量的 section 都合并了,因而程序运行的时候,就不依赖于这个库是否存在。但是这样有一个缺点: 就是相同的代码段,如果被多个程序使用的话,在内存里面就有多份; 而且一旦静态链接库更新了,如果二进制执行文件不重新编译, 也不随着更新。 因而就出现了另一种,动态 阅读全文
posted @ 2024-03-21 19:08 小熊酱 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 1. this指针的用处 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。 this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译的时候也 阅读全文
posted @ 2024-03-21 18:49 小熊酱 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1. 类的访问属性:public,protect,private C++中类的成员变量和函数都带有三种属性中的一种,假如没有特别声明,那么就默认是私有的(除了构造函数)。public表示是公开的,对象可以直接调用的变量或者函数;protect表示是保护性的,只有本类和子类函数能够访问(注意只是访问, 阅读全文
posted @ 2024-03-21 16:45 小熊酱 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1. 继承体系中的内存模型 我们都知道,在C++中,不存在大小是零的类。即便是空类,也要占据一个字节,否则无法比较两个空类对象是否是同一个对象(在C/C++中,默认使用地址来判断两个变量是否是同一个)。 class BaseEmpty { public: BaseEmpty() { std::cou 阅读全文
posted @ 2024-03-21 16:08 小熊酱 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 纯虚函数优点 防止派生类忘记实现虚函数,纯虚函数使得派生类必须实现基类的虚函数。 在某些场景下,创建基类对象是不合理的,含有纯虚拟函数的类称为抽象类,它不能直接生成对象。 声明方法: 在基类中纯虚函数的方法的后面加 =0。 virtual void funtion()=0; virtual std: 阅读全文
posted @ 2024-03-21 16:00 小熊酱 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 1. 普通类对象是什么布局? struct Base { Base() = default; ~Base() = default; void Func() {} int a; int b; }; int main() { Base a; return 0; } 2. 带虚函数的类对象是什么布局? s 阅读全文
posted @ 2024-03-21 13:11 小熊酱 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 问题:C++面向对象编程时,如果我们没有声明任何构造函数constructor,按照以前最初学习,说编译器会自动合成一个默认的无参构造函数default constructor,但是事实确实是这样吗,存不存在例外呢,即使有合成构造函数,那么它又将对类数据进行怎样的初始化呢? 1. 问题一 如果我们没 阅读全文
posted @ 2024-03-21 11:59 小熊酱 阅读(10) 评论(0) 推荐(0) 编辑