06 2023 档案

摘要:[toc] * **unsigned int 的减法永远不会小于0** 展开查看:死循环 for (unsigned int i = 5; i >=0; --i) { printf("unsigned int 永远不会小于0"); } 阅读全文
posted @ 2023-06-11 16:58 马角的逆袭 阅读(9) 评论(0) 推荐(0) 编辑
摘要:[toc] # 构造 # 析构 * **父类一定要用virtual的析构函数dtor** * Fa类的~Fa::Fa()没有加virtual,delete就不会调用子类的析构 * Fa* ptr = new Son,如果delete ptr,就执行的是父类的dtor,而不是子类的析构dtor 阅读全文
posted @ 2023-06-11 11:51 马角的逆袭 阅读(6) 评论(0) 推荐(0) 编辑
摘要:[toc] * main.cpp编译后链接libA.so,如果libA.so的开发者重载了全局::operator new(size_t) 展开查看 // A.cpp的重载了全局::operator new(size_t)代码如下 // 使用 g++ -shared -fPIC -o libA.so 阅读全文
posted @ 2023-06-09 17:21 马角的逆袭 阅读(29) 评论(0) 推荐(0) 编辑
摘要:[toc] * 可以用operator new()给对象多分配一点内存,用来做隐藏变量 展开查看 class Object { int i, j; // 对外显示2个变量 operator new() { } }; 阅读全文
posted @ 2023-06-09 10:15 马角的逆袭 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[toc] * **new[]要和delete[]成对出现** * ptr=new Obj[3]会调用3次构造函数ctor,delete [] ptr,会调用3次析构函数dtor * `class Obj { Obj* child_ptr; }` * 如果不写[]只会调用一次dtor,即只有ptr[ 阅读全文
posted @ 2023-06-08 16:49 马角的逆袭 阅读(7) 评论(0) 推荐(0) 编辑
摘要:[toc] * 链接:https://www.youtube.com/watch?v=uQ3wKWGmtk0&list=PLRTJhCIMo8HPlzVfZ8uxs6SGSSAtKXQ6Q * **所有的内存分配最终都会调用malloc** * glibc就是直接用的DL Malloc * 调用层次 阅读全文
posted @ 2023-06-08 15:33 马角的逆袭 阅读(63) 评论(0) 推荐(0) 编辑
摘要:[toc] # CMake * 可以通过`-D`选项设置编译器和cpp版本 1. `cmake -Bbuild -DCMAKE_CXX_COMPILER=/usr/bin/gcc-6` 可以指定使用`gcc-6`编译 2. `cmake -Bbuild -DCMAKE_CXX_STANDARD=14 阅读全文
posted @ 2023-06-07 13:54 马角的逆袭 阅读(98) 评论(0) 推荐(0) 编辑
摘要:[toc] * 进入这个网址:https://marketplace.visualstudio.com/items?itemName=hars.CppSnippets搜索c/c++然后下载 ![](https://img2023.cnblogs.com/blog/1851315/202306/185 阅读全文
posted @ 2023-06-07 11:32 马角的逆袭 阅读(237) 评论(0) 推荐(0) 编辑
摘要:[toc] # 宏 if * 原理:多行代码可以缩成一行宏定义,坏习惯--单行if不加大括号 ``` // 定义一个宏INIT_MAIN,实际是两个函数check_ping和start_nginx,而且没有括号 #define INIT_MAIN check_ping(); start_nginx( 阅读全文
posted @ 2023-06-06 15:46 马角的逆袭 阅读(11) 评论(0) 推荐(0) 编辑
摘要:[toc] * 一个空对象至少占用1字节的空间 展开查看:原因是在栈上分配2个对象时,要区分地址 class Object { }; void Function () { Object o1, o2; // 需要区分o1,o2的地址 } * 空类有虚函数,需要占用一个指针的空间,即:编译器会插入一个 阅读全文
posted @ 2023-06-05 19:41 马角的逆袭 阅读(3) 评论(0) 推荐(0) 编辑
摘要:[toc] 1. 原理:新版本.h里的class添加了虚函数、但是还在用旧版本so。 一个Object如果有虚函数,就会安插一个虚表指针vptr。 阅读全文
posted @ 2023-06-05 19:39 马角的逆袭 阅读(3) 评论(0) 推荐(0) 编辑
摘要:[toc] 1. std::array的size()是编译期确定的,不可改变大小 2. std::span和std::array区别 展开查看 `span`是一个轻量级的容器,可以包装任意类型和大小的连续内存区域,它并不拥有所包装的内存,只是提供了对这些内存的非拥有式视图 `span`的作用是提供对 阅读全文
posted @ 2023-06-02 09:50 马角的逆袭 阅读(7) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示