<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[轩辰的博客]]></title><description><![CDATA[Xuandoor-Xuanchen]]></description><link>https://blog.youkuaiyun.com/qq_35355198</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_35355198]]></copyright><item><title><![CDATA[c++中auto 类型推导：从疑惑到清晰]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/149180975</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/149180975</guid><author>qq_35355198</author><pubDate>Mon, 07 Jul 2025 20:24:57 +0800</pubDate><description><![CDATA[摘要：理解 C++ auto 类型推导的核心规则 本文解析了 auto 类型推导的行为，揭示其与模板类型推导相同的底层机制。关键点包括： auto 默认采用值拷贝语义，会忽略顶层 const（如 auto j = const_int_var 会推导为 int） 指针/引用场景会保留底层 const（如 auto p = &amp;const_int_var 得 const int*） 设计类比：值拷贝如复制文件（新副本无限制），指针/引用如共享文件（需保持原权限） 可通过 const auto 显式保留常量]]></description><category></category></item><item><title><![CDATA[C++中 const与constexpr的详细解析]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/149170284</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/149170284</guid><author>qq_35355198</author><pubDate>Mon, 07 Jul 2025 12:28:43 +0800</pubDate><description><![CDATA[本文详细解析了C++中const与constexpr的区别和使用场景。const用于定义不可修改的常量，强调运行时确定性和防止意外修改；constexpr则要求编译期确定值，获得更好的优化效果。文章通过对比表展示了二者的核心差异，并深入讲解了顶层const（指针地址不可变）和底层const（指向数据不可变）的概念与组合用法。特别分析了constexpr const type*这种特殊指针的双重约束特性，指出其与双层const的相似性及关键区别，强调全局和局部static变量在编译期地址确定性的不同。最后建议]]></description><category></category></item><item><title><![CDATA[派生类中this指针的地址变化]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/108546180</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/108546180</guid><author>qq_35355198</author><pubDate>Sat, 12 Sep 2020 10:24:52 +0800</pubDate><description><![CDATA[派生类中this指针的地址变化
那么谈本次内容之前，我们先来看一段代码
#include &lt;iostream&gt;
using namespace std;
class Base1
{
public:
    Base1() { cout &lt;&lt; "Base1::CTOR():" &lt;&lt; static_cast&lt;const void *&gt;(this) &lt;&lt; endl; }
    void func1() { cout &lt;&lt; "Base1::f]]></description><category></category></item><item><title><![CDATA[类中所占的字节是怎么算的]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/108485639</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/108485639</guid><author>qq_35355198</author><pubDate>Wed, 09 Sep 2020 11:18:27 +0800</pubDate><description><![CDATA[类中所占的字节是怎么算的
那么谈本次内容之前，我们先来看一个问题“一个空类所占字节是多少？”
class EmptyClass
{
};

大家猜一猜这个类占不占字节呢，看上去它什么都没有那么是不是可以认为它是0字节呢，其实不然我们可以用sizeof看一下
cout&lt;&lt;sizeof(EmptyClass);
// 输出:1

为什么是输出1，原因是因为它需要一个起始地址，哪怕是空类我们也可以实例化的，实例化后它必然要占有一个地址既然地址属于这个对象那么它必然最少要占有一个字节的。
那么我们再来猜]]></description><category></category></item><item><title><![CDATA[RAII(资源管理)注意事项]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/101692815</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/101692815</guid><author>qq_35355198</author><pubDate>Sun, 29 Sep 2019 15:01:11 +0800</pubDate><description><![CDATA[RAIL(资源管理)注意事项
在C++中，我们往往需要比其他语言多份出一些精力用来管理资源(内存)，我们可能记得一个规律，有指针就要有释放，百密一疏嘛，为了我们以后能少走一些弯路，我们需要使用智能指针来进行解决这个问题了，智能指针的话它有一个好处就是它替我们进行释放（析构函数中帮我们释放内存），这个地方请看我的析构函数的总结！
首先我们想看一个案例：
#include &lt;iostream&g...]]></description><category></category></item><item><title><![CDATA[Memory allocation详解]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/101692555</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/101692555</guid><author>qq_35355198</author><pubDate>Sun, 29 Sep 2019 14:57:03 +0800</pubDate><description><![CDATA[Memory allocation详解
在C++中，我们可以很方便的动态分配内存，那么动态分配后的初始化顺序和释放内存时候的析构顺序究竟是怎样的呢，我们来回顾一下
首先我们想看一个案例：
首先假设我们有一个User类
class User{
public:
	User(std::string str,int i):name(str),val(i){data=new char[100];}
	~Us...]]></description><category></category></item><item><title><![CDATA[explicit修饰符详解]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/101692115</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/101692115</guid><author>qq_35355198</author><pubDate>Sun, 29 Sep 2019 14:51:52 +0800</pubDate><description><![CDATA[explicit修饰符详解
在C++中，如果一个类只有一个参数的构造函数，C++允许一种特殊的声明类变量的方式，在这种情况下，可以直接将一个对应于构造函数参数类型的数据直接赋值给类变量，编译器在编译时会自动进行类型转换，将对应于构造函数参数类型的数据转换为类的对象。如下例所示：
#include&lt;iostream&gt;
using namespace std;
class Test
{
p...]]></description><category></category></item><item><title><![CDATA[classCopy and operator=详解]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/101691866</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/101691866</guid><author>qq_35355198</author><pubDate>Sun, 29 Sep 2019 14:48:56 +0800</pubDate><description><![CDATA[classCopy and operator=详解
在类中我们常常有一些可以不用写，就可以使用的函数，比如默认的构造函数，默认的copy构造，还有默认的操作符重载= 如下例所示：
#include&lt;iostream&gt;
class Test{/*这是一个空类*/};
int main(int argc,char**argv)
{
    Test test1;	        //suc...]]></description><category></category></item><item><title><![CDATA[C++11程序设计要点总结-虚函数和纯虚函数]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/85810449</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/85810449</guid><author>qq_35355198</author><pubDate>Sat, 05 Jan 2019 00:10:13 +0800</pubDate><description><![CDATA[C++程序设计要点总结-
今天我们来讲一下虚函数和纯虚函数,那么这两个是什么意思呢,和我们OOP编程又有什么关系呢,别急马上就告诉你,那么讲之前我需要让大家理解一下什么是接口,接口用官方话来说就是:接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
用白话文来说声明一个方法,在继承他的类中把他实现出来...]]></description><category></category></item><item><title><![CDATA[C++11程序设计要点总结-虚继承与继承详解]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/85810072</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/85810072</guid><author>qq_35355198</author><pubDate>Sat, 05 Jan 2019 00:03:01 +0800</pubDate><description><![CDATA[C++程序设计要点总结-
在编程的过程中呢我们总会遇到一些各种各样的问题，就比如在写一个类的时候，我们有时候可以继承一下和他有共同特点的类，但是为什么要写虚继承呢，虚继承和继承有什么区别呢，请听我慢慢来讲，什么时候要用继承什么时候要用虚继承呢？
既然要讲虚继承和继承的区别，那么我们首先要写两个案例呢，那么我先写一个继承案例给你们看看把！
/*基类*/				    /*派生类*/
class Ba...]]></description><category></category></item><item><title><![CDATA[C++11程序设计要点总结-模板机制详解]]></title><link>https://blog.youkuaiyun.com/qq_35355198/article/details/85808434</link><guid>https://blog.youkuaiyun.com/qq_35355198/article/details/85808434</guid><author>qq_35355198</author><pubDate>Fri, 04 Jan 2019 23:33:14 +0800</pubDate><description><![CDATA[C++程序设计要点总结-
在编程的过程中呢我们总会遇到一些各种各样的问题，就比如在写方法的时候，我们一个同样的方法要写好几种类型的呢，这让我们很伤脑筋，但是呢C++有一个强大的功能就是模板机制，这个模板机制就可以让我们少写很多同样的代码，那么什么是模板呢，。我们举一个小例子吧！比如我们要去写交换函数，那么我们正常的写法是
void swap(int&amp;amp;amp;a,int&amp;amp;amp;b)
{
     ...]]></description><category></category></item></channel></rss>