errorman

不积跬步,无以至千里
随笔 - 35, 文章 - 0, 评论 - 0, 阅读 - 9674

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

随笔分类 -  C++

摘要:1.使用基于range的for循环 这是 C++11 中非常酷的特性,如果你想从头到尾迭代,这是最好的方法。 using namespace std; int main() { vector<int> vec = {0, 1, 2, 3, 4}; for (const auto &value : v 阅读全文

posted @ 2023-03-29 20:14 Clemens 阅读(45) 评论(0) 推荐(0) 编辑

摘要:C++提供了reinterpret_cast用于任意类型的转换,即reinterpret_cast运算符允许将任意指针转换到其他指针类型,也允许做任意整数类型和任意指针类型之间的转换。转换时,执行的是逐个比特复制的操作。reinterpret中文意为“重新解释; 重新诠释;”。 (1)它用于将某种数 阅读全文

posted @ 2023-03-28 21:15 Clemens 阅读(240) 评论(0) 推荐(0) 编辑

摘要:static_cast 用于正常/普通类型转换。 这也是负责隐式类型强制的转换,也可以显式调用。 您应该在将 float 转换为 int、将 char 转换为 int 等情况下使用它。这可以转换相关的类型类。这是一个编译期间的转换操作。会进行类型检查。 1.隐式转换案例 int main() { f 阅读全文

posted @ 2023-03-28 20:53 Clemens 阅读(83) 评论(0) 推荐(0) 编辑

摘要:Safely converts pointers and references to classes up, down, and sideways along the inheritance hierarchy. 沿继承层次结构将指针和引用安全地向上、向下和横向转换为类。 dynamic_cast< 阅读全文

posted @ 2023-03-27 21:10 Clemens 阅读(26) 评论(0) 推荐(0) 编辑

摘要:多继承产生的冲突 当存在多基类时,看下面这个例子: class A { protected: int a; }; class B : public A { protected: int b; }; class C : public A { protected: int c; }; class D : 阅读全文

posted @ 2023-03-27 19:55 Clemens 阅读(26) 评论(0) 推荐(0) 编辑

摘要:在头文件<memory>中定义。 std::unique_ptr 是通过指针占有并管理另一对象,并在 unique_ptr 离开作用域时释放该对象的智能指针。 在下列两者之一发生时用关联的删除器释放对象: (1)销毁了管理的 unique_ptr 对象 struct B { virtual ~B() 阅读全文

posted @ 2023-03-26 13:06 Clemens 阅读(88) 评论(0) 推荐(0) 编辑

摘要:我们使用gcc编译器,C++11, 《c++核心指南》的一个条款:“For “out” output values, prefer return values to output parameters”:在函数输出数值时,尽量使用返回值而非输出参数。 我们之前的做法应该是函数参数里面使用指针或者引用 阅读全文

posted @ 2023-03-25 16:38 Clemens 阅读(54) 评论(0) 推荐(0) 编辑

摘要:RAII全称Resource Acquisition Is Initialization,即“资源获取即初始化”。这种技术的核心思想是,通过在对象的构造函数中获取资源,并在对象的析构函数中释放资源,来确保资源的正确管理。 它绑定了在使用前必须获取的资源的生命周期(分配的堆内存、执行线程、打开的套接字 阅读全文

posted @ 2023-03-25 15:16 Clemens 阅读(37) 评论(0) 推荐(0) 编辑

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