<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[limingkang1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/limingkang1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; limingkang1]]></copyright><item><title><![CDATA[Effective C++笔记 （5-6）]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/145100025</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/145100025</guid><author>limingkang1</author><pubDate>Sun, 12 Jan 2025 23:43:46 +0800</pubDate><description><![CDATA[上面这个类声明了两个有参构造函数，所以编译器就不会再为它生成一个无参的默认构造函数。这意味着如果你想要无参构造，你就得手动写出来。编译器该怎么做（或说 “我不允许赋值” 也行，比如用 = delete;一个合乎你需求语义的 operator=，在实现中。“赋值”这样一个对象，那么只能。]]></description><category></category></item><item><title><![CDATA[【为什么内联函数定义在头文件不会导致重复定义？】]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/145099428</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/145099428</guid><author>limingkang1</author><pubDate>Sun, 12 Jan 2025 21:07:27 +0800</pubDate><description><![CDATA[在 C++ 中，如果你在头文件里定义了一个普通的非内联函数，然后这个头文件又被多个源文件包含，那么在链接阶段就会报“重复定义”的错误 (multiple definitions)。这是因为每个包含了该头文件的源文件中都生成了同一个函数的定义，最后链接器会发现有多个相同的定义，从而产生冲突。简言之，符合标准的内联函数可以有多份相同定义，但在最终的链接阶段会被视为一个函数。这样就不会出现重复定义的问题了。]]></description><category></category></item><item><title><![CDATA[【Effective C++笔记 （3-4）】]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/144590481</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/144590481</guid><author>limingkang1</author><pubDate>Thu, 09 Jan 2025 23:56:42 +0800</pubDate><description><![CDATA[手动初始化内置类型对象：由于C++不保证内置类型对象的自动初始化，务必在代码中显式进行初始化。优先使用成员初始化列表：在构造函数中，最好使用成员初始化列表（member initialization list）来初始化成员变量，而避免在构造函数体内进行赋值操作（assignment）。保持初始化顺序一致：成员初始化列表中成员变量的排列顺序应与类中声明的顺序相同，以避免潜在的初始化顺序问题。]]></description><category></category></item><item><title><![CDATA[【Effective C++笔记 （1-2）】]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/144443395</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/144443395</guid><author>limingkang1</author><pubDate>Mon, 16 Dec 2024 16:54:27 +0800</pubDate><description><![CDATA[优先使用const和enum：在需要定义常量时，优先选择const对象或enum，以获得类型安全性和更好的作用域控制。使用inline函数：对于需要类似宏功能的场景，使用inline函数替代#define宏，可以避免多次求值和类型不安全的问题，同时保持性能优势。]]></description><category></category></item><item><title><![CDATA[OpenGL ES简单示例]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/138720346</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/138720346</guid><author>limingkang1</author><pubDate>Sat, 11 May 2024 16:20:42 +0800</pubDate><description><![CDATA[/ 定义顶点数据-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)。这种坐标范围使得顶点的位置不依赖于屏幕的大小和比例。]]></description><category></category></item><item><title><![CDATA[Effective C++ 读书笔记（11-14）]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/136558975</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/136558975</guid><author>limingkang1</author><pubDate>Fri, 08 Mar 2024 13:58:53 +0800</pubDate><description><![CDATA[Effective C++ 笔记]]></description><category></category></item><item><title><![CDATA[计算机图形学数学基础]]></title><link>https://blog.youkuaiyun.com/limingkang1/article/details/136108841</link><guid>https://blog.youkuaiyun.com/limingkang1/article/details/136108841</guid><author>limingkang1</author><pubDate>Thu, 15 Feb 2024 22:46:58 +0800</pubDate><description><![CDATA[3D空间通常用3个坐标轴 X, Y，Z来表示。通常有左手坐标系和右手坐标系。可以使用大拇指食指和中指成直角进行构造，如下图所示，大拇指为Y轴，Z轴为食指，中指为X轴右手坐标系如下，为了x轴方向朝右，绕y轴旋转180度，如右图所示。在OpenGL中的坐标系一般是右手坐标系，而Direct3D中一般是左手坐标系。]]></description><category></category></item></channel></rss>