06 2023 档案

摘要:原始指针 要想了解智能指针,就需要首先了解原始指针的痛点,原始指针有几点问题 忘记释放内存 -> 产生内存泄漏 在尚有指针引用内存的情况下释放内存(使用已经释放掉的对象) -> 产生引用非法内存的指针 同一块内存释放2次 智能指针的产生本质上都是为了解决这些问题 关于使用new动态分配对象的初始化问 阅读全文
posted @ 2023-06-20 23:04 0x7F 阅读(49) 评论(0) 推荐(0) 编辑
摘要:> 说明: 本文探讨的是 C++11 以来的值类别 关于左值和右值,在不对其进行详细的划分时,简单的分类方法包括 > 1. 左值持久,右值短暂 > 2. 能取得地址得通常是左值,反之通常是右值(这一方法启示我们一个表达式的类型与其是左值还是右值无关,即相同类型的表达式既可以是左值也可以是右值) 右值 阅读全文
posted @ 2023-06-19 17:05 0x7F 阅读(32) 评论(0) 推荐(0) 编辑
摘要:为了叙述的方便,以下内容以赋值运算符为例 赋值运算符本质是一个名为`operator=`的函数,某些运算符必须定义为成员函数 赋值运算符定义示例代码 ``` class Foo { public: Foo& operator=(const Foo&); }; ``` 阅读全文
posted @ 2023-06-19 12:34 0x7F 阅读(10) 评论(0) 推荐(0) 编辑
摘要:普通类型 类类型 对于类类型,编译器只能自动执行一步隐式类型转换.例如从字符串字面值转换为string类型,但是无法继续将string隐式转换为其他类型 新式显示类型转换 格式 cast-name(expression); static_cast Any well-defined type conve 阅读全文
posted @ 2023-06-18 19:35 0x7F 阅读(6) 评论(0) 推荐(0) 编辑
摘要:RAII Resource Acquisition Is Initialization,资源获取即初始化 这是一种解决资源管理问题的方法,将资源的有效期与持有资源的对象的生命期严格绑定,由对象的构造函数完成资源的分配,由析构函数完成资源的释放 C++借助构造函数和析构函数,解决了传统的 malloc 阅读全文
posted @ 2023-06-18 18:48 0x7F 阅读(32) 评论(0) 推荐(0) 编辑
摘要:在了解创建对象的方式之前,首先了解一下**初始化**和**赋值**两个操作, 1. 初始化是创建变量时赋予其一个初始值,即初始化之前并不存在变量 2. 赋值是把对象的当前值擦除,用新值代替旧值,即赋值之前存在变量 让人困惑的是`=`既可以用于初始化,也可以用于赋值,不要认为初始化和赋值是相同的操作 阅读全文
posted @ 2023-06-18 17:18 0x7F 阅读(76) 评论(0) 推荐(1) 编辑
摘要:转载说明:以下部分内容来自从零开始详细介绍CMake CMake 说明 cmake的定义是什么 ? 高级编译配置工具 当多个人用不同的语言或者编译器开发一个项目,最终要输出一个可执行文件或者共享库(dll,so等等)这时候神器就出现了 CMake! 所有操作都是通过编译CMakeLists.txt来 阅读全文
posted @ 2023-06-16 23:23 0x7F 阅读(42) 评论(0) 推荐(0) 编辑
摘要:# cstdint > 自 C++11 开始被引入,旨在为 C++ 程序员提供一种可移植的方式来定义固定宽度的整数类型和相关常量,解决平台兼容性问题 以`uint64_t`为例,说明该头文件的作用 `uint64_t`是`unsigned long long`的类型别名, > `typedef un 阅读全文
posted @ 2023-06-05 19:03 0x7F 阅读(294) 评论(0) 推荐(0) 编辑

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