errorman

不积跬步,无以至千里

导航

2023年3月28日

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

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

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

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

2023年3月27日

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

posted @ 2023-03-27 21:10 Clemens 阅读(20) 评论(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 阅读(17) 评论(0) 推荐(0) 编辑

2023年3月26日

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

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

2023年3月25日

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

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

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

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

2023年3月20日

摘要: 在Qt+OpengGL使用教程(2)中我们绘制了三角形,接下来我们需要使用qt的API绘制一个矩形,同时参考和对照:LearnOpenGL (3) 绘制矩形。 一、准备工作 元素缓冲对象(EBO) 二、绘制矩形 我们使用两个三角形组成一个矩形。 为什么使用元素缓冲对象? 定义矩形的四个顶点 floa 阅读全文

posted @ 2023-03-20 16:17 Clemens 阅读(270) 评论(0) 推荐(0) 编辑

摘要: 本文基于Win10 + Visual Studio 2019 + OpenGL 3.3。参考“你好,三角形”。 在LearnOpenGL (2) 绘制三角形 的基础上继续添加代码。 一、准备工作 元素缓冲对象(EBO) 二、绘制矩形 我们使用两个三角形组成一个矩形。 为什么使用元素缓冲对象? 定义矩 阅读全文

posted @ 2023-03-20 16:11 Clemens 阅读(276) 评论(0) 推荐(0) 编辑

摘要: 在Qt+OpengGL使用教程(1)中我们建立了程序的基本结构,接下来我们需要使用qt的API绘制一个三角形,同时参考和对照:LearnOpenGL (2) 绘制三角形。 一、准备工作 环境:Ubuntu 16.04 LTS + Qt 5.14.2. 二、绘制三角形 顶点数组坐标 OpenGL中我们 阅读全文

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