<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ylf_fengge的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ylf_fengge</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ylf_fengge]]></copyright><item><title><![CDATA[C++11之‌右值引用和移动语义]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145628154</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145628154</guid><author>ylf_fengge</author><pubDate>Sun, 16 Feb 2025 15:54:14 +0800</pubDate><description><![CDATA[右值引用和移动语义是C++11中极为重要的特性，它们赋予了C++开发者更高效地管理资源和编写高性能代码的能力。通过理解和合理运用这两个特性，我们可以编写出更简洁、高效且优雅的C++程序，充分发挥C++语言的强大优势。]]></description><category></category></item><item><title><![CDATA[C++11之新增容器类array]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145571630</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145571630</guid><author>ylf_fengge</author><pubDate>Tue, 11 Feb 2025 15:17:33 +0800</pubDate><description><![CDATA[C++11的 array 类在保留传统数组高效性的基础上，克服了其诸多缺点，为C++程序员提供了更安全、易用的数据结构。无论是在性能要求高的底层代码，还是在追求代码健壮性和可读性的应用开发中， array 类都能发挥重要作用，是C++编程中不可或缺的一部分。]]></description><category></category></item><item><title><![CDATA[面试题大全-编写int，BOOL，float，指针变量与零值比较的if语句]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145510572</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145510572</guid><author>ylf_fengge</author><pubDate>Sat, 08 Feb 2025 11:02:11 +0800</pubDate><description><![CDATA[这是面试中笔试经常考查的问题，尤其是与float比较更容易出错。]]></description><category></category></item><item><title><![CDATA[如何解决使用erase函数删除元素导致迭代器失效引起的崩溃的问题]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145489241</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145489241</guid><author>ylf_fengge</author><pubDate>Fri, 07 Feb 2025 11:29:19 +0800</pubDate><description><![CDATA[在使用 erase  函数删除元素时，会导致后面的迭代器失效。从而引起程序崩溃。]]></description><category></category></item><item><title><![CDATA[C++11初始化列表与initializer_list]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145466922</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145466922</guid><author>ylf_fengge</author><pubDate>Thu, 06 Feb 2025 11:50:07 +0800</pubDate><description><![CDATA[C++11引入的初始化列表和 initializer_list 为对象初始化带来了更强大、更灵活和更安全的方式，极大地提升了代码的表达力和效率。]]></description><category></category></item><item><title><![CDATA[C++中的内联函数]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145449194</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145449194</guid><author>ylf_fengge</author><pubDate>Wed, 05 Feb 2025 10:51:45 +0800</pubDate><description><![CDATA[当一个函数被声明为内联函数时，编译器会在编译阶段将函数调用处用函数体的代码进行替换，而不是像普通函数那样进行常规的函数调用操作。这就像是把函数体直接嵌入到调用点，从而避免了函数调用的额外开销，提高了程序的执行效率。]]></description><category></category></item><item><title><![CDATA[面试题大全-实现一个“标准”的MIN宏]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145442050</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145442050</guid><author>ylf_fengge</author><pubDate>Wed, 05 Feb 2025 08:44:51 +0800</pubDate><description><![CDATA[对于带有"参数"的宏，在“宏体”中一定要对参数加括号，否则，可能达不到预期的结果。]]></description><category></category></item><item><title><![CDATA[C++11新增关键字之字符串原始字面量]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145286363</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145286363</guid><author>ylf_fengge</author><pubDate>Tue, 21 Jan 2025 17:13:51 +0800</pubDate><description><![CDATA[原始字面量R可以直接表示字符串的实际含义，而不需要额外对字符串做转义或连接等操作。原始字符串用（）括起来，且()前后可以添加字符串，但所添加的字符串必须相同]]></description><category></category></item><item><title><![CDATA[浅谈sizeof和strlen]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145255664</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145255664</guid><author>ylf_fengge</author><pubDate>Mon, 20 Jan 2025 10:44:43 +0800</pubDate><description><![CDATA[比如有一间房间，最多只能入住4个人，目前入住了2个人，那么用sizeof计算的话，结果是4；用strlen计算的话，结果是2。]]></description><category></category></item><item><title><![CDATA[C++11新增关键字之mutable]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/145015060</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/145015060</guid><author>ylf_fengge</author><pubDate>Thu, 09 Jan 2025 09:50:32 +0800</pubDate><description><![CDATA[默认的lamba的声明方式是const声明，通过值获取的参数在lambda内是无法修改的，如果要改变该值，在参数列表后面加上mutable关键字。如果我们有这么一个需求，需要在const函数里修改类变量的值，那该怎么办呢。mutable和const正好是相反的，const表示不可修改，而mutable表示可修改的。一，如果一个函数定义成const,那么在此函数中是不能修改类成员变量的。由于PrintNum函数被定义成了const,所以不能修改num的值。二，mutable在lambda表达式中的作用。]]></description><category></category></item><item><title><![CDATA[面试题大全-简述TCP和UDP的区别]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144939967</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144939967</guid><author>ylf_fengge</author><pubDate>Sun, 05 Jan 2025 09:48:55 +0800</pubDate><description><![CDATA[针对socket编程，面试官可能会问到TCP和UDP的区别。]]></description><category></category></item><item><title><![CDATA[面试题大全-string类的实现]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144928483</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144928483</guid><author>ylf_fengge</author><pubDate>Sat, 04 Jan 2025 15:24:54 +0800</pubDate><description><![CDATA[此题考查应聘者对构造函数，析构函数，复制拷贝函数以及赋值函数的掌握情况。同时也考察了对指针，字符串以'\0'结尾，深拷贝和浅拷贝的掌握情况。看似简单，要想拿满分也不容易。]]></description><category></category></item><item><title><![CDATA[面试题大全-new和malloc的区别]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144893694</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144893694</guid><author>ylf_fengge</author><pubDate>Fri, 03 Jan 2025 10:19:29 +0800</pubDate><description><![CDATA[而new操作符在内存分配失败时，会抛出std::bad_maclloc异常。5，malloc返回的是一个void*指针，开发者需要手动进行类型转换以匹配所需的类型。3，new分配的内存，需要用delete来释放（delete对象时，会自动调用对象的析构函数）；malloc分配的内容需要用free来释放。2, new在分配内存后会自动调用对象的构造函数进行初始化,而malloc分配的内存是未初始化的,也不会调用对象的构造函数。1, new是一个C++中特有的操作符，而malloc是C中的内存分配函数。]]></description><category></category></item><item><title><![CDATA[面试题大全-C++面向对象三大特点]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144868623</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144868623</guid><author>ylf_fengge</author><pubDate>Thu, 02 Jan 2025 14:24:26 +0800</pubDate><description><![CDATA[在C++中，多态有两种形式，一种是静态多态，另外一种是动态多态。静态多态是编译时多态，动态多态是运行时多态。protected 继承：基类的public成员在派生类中变为protected，而protected成员保持不变。继承可以使我们在已有类的基础上进行扩展，增加新的方法和属性，从而创建新的类，这些新类被称为派生类（Derived Class）静态多态：通过重载函数实现。动态多态：通过在派生类中重写基类的方法（虚函数），在运行时根据对象的实际类型调用相应的方法。三大特点是：封装，继承和多态。]]></description><category></category></item><item><title><![CDATA[C++11新增关键字之范围for循环]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144862001</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144862001</guid><author>ylf_fengge</author><pubDate>Thu, 02 Jan 2025 10:13:32 +0800</pubDate><description><![CDATA[declaration表示元素的声明，元素类型可以是值（例如 int），也可以是引用(例如int &,或者const int &)，甚至可以是使用auto关键字来自动推导循环变量的类型。二，C++11新增了范围for循环（Range-based for loop）。这种循环能更简洁地遍历容器（如字符串、向量、数组等）中的所有元素。一，在C++11之前我们对一个数组进行遍历，采用如下for循环的方式。三，范围for循环语法格式。]]></description><category></category></item><item><title><![CDATA[C++11新增关键字之delete]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144855887</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144855887</guid><author>ylf_fengge</author><pubDate>Tue, 31 Dec 2024 19:38:56 +0800</pubDate><description><![CDATA[二，C++11增加了一个关键字delete来解决这个问题，delete表示禁止调用此函数。error C2280: “Parent::Parent(const Parent &)”: 尝试引用已删除的函数。error C2280: “void Parent::Do(char)”: 尝试引用已删除的函数。我们创建了一个类，但不允许调用这个类的拷贝构造函数和拷贝赋值运算符，我们该如何实现这个类。即使拷贝构造函数和拷贝赋值运算符被定义成了Public类型的函数，以下的调用依然编译不过。以下的调用都是编译不过的。]]></description><category></category></item><item><title><![CDATA[C++11新增关键字之final和override]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/144844396</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/144844396</guid><author>ylf_fengge</author><pubDate>Tue, 31 Dec 2024 11:33:54 +0800</pubDate><description><![CDATA[使用override可以明确地表示一个函数重写了基类中的虚函数，并让编译器帮助我们检查是否正确地进行了重写。override关键字用于派生类中，表示该成员函数重写了基类中的虚函数。error C3668: “Child::Do”: 包含重写说明符“override”的方法没有重写任何基类方法。error C3248: “Parent::Do”: 声明为“final”的函数无法被“Child::Do”重写。Child::Do函数添加override表示重写了基类Parent中的Do函数。]]></description><category></category></item><item><title><![CDATA[c++ const总结]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/127764594</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/127764594</guid><author>ylf_fengge</author><pubDate>Wed, 09 Nov 2022 10:21:55 +0800</pubDate><description><![CDATA[C++中的const关键字的用法非常灵活，而使用const将大大改善程序的健壮性，本人根据各方面查到的资料进行总结如下，期望对朋友们有所帮助。]]></description><category></category></item><item><title><![CDATA[在什么情况下析构函数要定义成虚函数]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/127664411</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/127664411</guid><author>ylf_fengge</author><pubDate>Thu, 03 Nov 2022 10:02:46 +0800</pubDate><description><![CDATA[一个类作为基类时，最好把析构函数定义成虚函数。否则，当用基类指针指向派生类情况下，释放基类指针，派生类的析构函数不会被调用，这样就有可能造成资源或者内存泄漏等问题。]]></description><category></category></item><item><title><![CDATA[基类和派生类之间构造函数和析构函数的调用顺序]]></title><link>https://blog.youkuaiyun.com/ylf_fengge/article/details/127628884</link><guid>https://blog.youkuaiyun.com/ylf_fengge/article/details/127628884</guid><author>ylf_fengge</author><pubDate>Tue, 01 Nov 2022 10:25:56 +0800</pubDate><description><![CDATA[笔者面试时，经常被问到基类和派生类之间构造函数和析构函数的调用顺序的问题。今天写个简单程序记录一下。更简单的记忆：构造时是先有父后有子（肯定是有了老子再有儿子）。析构时相反]]></description><category></category></item></channel></rss>