自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Effective C++笔记 (5-6)

上面这个类声明了两个有参构造函数,所以编译器就不会再为它生成一个无参的默认构造函数。这意味着如果你想要无参构造,你就得手动写出来。编译器该怎么做(或说 “我不允许赋值” 也行,比如用 = delete;一个合乎你需求语义的 operator=,在实现中。“赋值”这样一个对象,那么只能。

2025-01-12 23:43:46 971

原创 【为什么内联函数定义在头文件不会导致重复定义?】

在 C++ 中,如果你在头文件里定义了一个普通的非内联函数,然后这个头文件又被多个源文件包含,那么在链接阶段就会报“重复定义”的错误 (multiple definitions)。这是因为每个包含了该头文件的源文件中都生成了同一个函数的定义,最后链接器会发现有多个相同的定义,从而产生冲突。简言之,符合标准的内联函数可以有多份相同定义,但在最终的链接阶段会被视为一个函数。这样就不会出现重复定义的问题了。

2025-01-12 21:07:27 229

原创 【Effective C++笔记 (3-4)】

手动初始化内置类型对象:由于C++不保证内置类型对象的自动初始化,务必在代码中显式进行初始化。优先使用成员初始化列表:在构造函数中,最好使用成员初始化列表(member initialization list)来初始化成员变量,而避免在构造函数体内进行赋值操作(assignment)。保持初始化顺序一致:成员初始化列表中成员变量的排列顺序应与类中声明的顺序相同,以避免潜在的初始化顺序问题。

2025-01-09 23:56:42 714

原创 【Effective C++笔记 (1-2)】

优先使用const和enum:在需要定义常量时,优先选择const对象或enum,以获得类型安全性和更好的作用域控制。使用inline函数:对于需要类似宏功能的场景,使用inline函数替代#define宏,可以避免多次求值和类型不安全的问题,同时保持性能优势。

2024-12-16 16:54:27 601

原创 OpenGL ES简单示例

/ 定义顶点数据-0.5f, -0.5f, 0.0f, // 左下角0.5f, -0.5f, 0.0f, // 右下角0.0f, 0.5f, 0.0f // 顶部​​ 在OpenGL中,通常会使用标准化设备坐标(Normalized Device Coordinates, NDC)来表示顶点的位置。NDC是一个以屏幕为单位的坐标空间,在这个空间中,左下角是(-1, -1),右上角是(1, 1)。这种坐标范围使得顶点的位置不依赖于屏幕的大小和比例。

2024-05-11 16:20:42 1476 2

原创 Effective C++ 读书笔记(11-14)

Effective C++ 笔记

2024-03-08 13:58:53 1559 1

原创 计算机图形学数学基础

3D空间通常用3个坐标轴 X, Y,Z来表示。通常有左手坐标系和右手坐标系。可以使用大拇指食指和中指成直角进行构造,如下图所示,大拇指为Y轴,Z轴为食指,中指为X轴右手坐标系如下,为了x轴方向朝右,绕y轴旋转180度,如右图所示。在OpenGL中的坐标系一般是右手坐标系,而Direct3D中一般是左手坐标系。

2024-02-15 22:46:58 2014 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除