<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chenlichenforlinux21的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chenlichenforlinux21</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chenlichenforlinux21]]></copyright><item><title><![CDATA[QT第32-34课程笔记-多态/抽象类/接口]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135147621</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135147621</guid><author>chenlichenforlinux21</author><pubDate>Fri, 22 Dec 2023 10:41:06 +0800</pubDate><description><![CDATA[对于不同的交通工具，比如汽车和自行车，它们的移动方式是不同的。你需要一个具体的交通工具，比如“汽车”或“自行车”，它们根据“交通工具”的概念具体实现了移动的功能。无论是电视、音响还是灯光，遥控器上的“开/关”按钮（这个按钮就像是一个虚函数）都能控制它们，但具体的操作（打开电视、播放音乐、开灯）则取决于你指向的设备。在 C++ 中，虽然没有像其他编程语言（比如 Java 中的接口Interface）一样直接定义接口的关键字，但可以通过抽象类和纯虚函数的方式来实现接口的概念。在这个例子中，不同的对象（]]></description><category></category></item><item><title><![CDATA[QT第29-31课程笔记-基类构造/虚函数/虚继承解决菱形继承]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135147532</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135147532</guid><author>chenlichenforlinux21</author><pubDate>Fri, 22 Dec 2023 10:39:58 +0800</pubDate><description><![CDATA[虚继承是C++中一种特殊的继承方式，主要用来解决多重继承中的菱形继承问题。在菱形继承结构中，一个类继承自两个具有共同基类的类时，会导致共同基类的成员在派生类中存在两份拷贝，这不仅会导致资源浪费，还可能引起数据不一致的问题。多重继承增加了语言的灵活性，但同时也引入了额外的复杂性，特别是当多个基类具有相同的成员时。在多重继承中，派生类继承了所有基类的特性。如果不同的基类有相同名称的成员，则必须明确指出所引用的是哪个基类的成员。在继承层次结构中，这是非常重要的，特别是当基类需要一些特定的初始化操作时。]]></description><category></category></item><item><title><![CDATA[QT第28节课程笔记 - 基类构造函数]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109713</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109713</guid><author>chenlichenforlinux21</author><pubDate>Wed, 20 Dec 2023 15:36:42 +0800</pubDate><description><![CDATA[当创建派生类的对象时，基类的构造函数总是在派生类的构造函数之前被调用。如果没有明确指定，将调用基类的默认构造函数。如果基类没有默认构造函数，或者你需要调用一个特定的基类构造函数，通过这种方式，派生类能够确保其基类部分被正确初始化。在继承层次结构中，这是非常重要的，特别是当基类需要一些特定的初始化操作时。在C++中，派生类可以通过其构造函数的初始化列表来调用基类的构造函数。这是在构造派生类对象时初始化基类部分的。]]></description><category></category></item><item><title><![CDATA[QT第27节课程笔记 - 权限对继承的影响]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109090</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109090</guid><author>chenlichenforlinux21</author><pubDate>Wed, 20 Dec 2023 15:18:19 +0800</pubDate><description><![CDATA[这个表格提供了一个快速参考，帮助理解在不同类型的继承中基类成员的访问级别是如何变化的。记住，无论继承类型如何，基类的。在C++中，访问控制符对继承的影响可以通过下表来清晰地展示。这个表格展示了不同类型的继承（成员始终不可直接在派生类中访问。）如何影响基类的不同类型成员（）在派生类中的访问级别。]]></description><category></category></item><item><title><![CDATA[QT第25-26节课程笔记 - 继承及分文件]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109060</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135109060</guid><author>chenlichenforlinux21</author><pubDate>Wed, 20 Dec 2023 15:17:34 +0800</pubDate><description><![CDATA[继承是面向对象编程（OOP）中的一个核心概念，特别是在C++中。它允许一个类（称为派生类或子类）继承另一个类（称为基类或父类）的属性和方法。继承的主要目的是实现代码重用，以及建立一种类型之间的层次关系。在C++中，继承可以是公有（public）、保护（protected）或私有（private）的，这决定了基类成员在派生类中的访问权限。，它定义了所有动物共有的特性和行为。让我们用一个简单而有趣的案例来说明继承的概念：动物园中的动物。类，并添加或修改特定于它们自己的特性和行为。]]></description><category></category></item><item><title><![CDATA[QT第24节课程笔记 - 静态成员变量/函数]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135102828</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135102828</guid><author>chenlichenforlinux21</author><pubDate>Wed, 20 Dec 2023 10:56:01 +0800</pubDate><description><![CDATA[静态成员在C++类中是一个重要的概念，它包括静态成员变量和静态成员函数。静态成员变量定义：静态成员变量是类的所有对象共享的变量。与普通成员变量相比，无论创建了多少个类的实例，静态成员变量只有一份拷贝。初始化：静态成员变量需要在类外进行初始化，通常在类的实现文件中。访问：静态成员变量可以通过类名直接访问，不需要创建类的对象。也可以通过类的对象访问。用途：常用于存储类级别的信息（例如，计数类的实例数量）或全局数据需要被类的所有实例共享。静态成员函数定义。]]></description><category></category></item><item><title><![CDATA[QT第23节课程笔记 - 析构函数]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135102780</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135102780</guid><author>chenlichenforlinux21</author><pubDate>Wed, 20 Dec 2023 10:54:52 +0800</pubDate><description><![CDATA[析构函数是C++中的一个特殊的成员函数，它在对象生命周期结束时被自动调用，用于执行对象销毁前的清理工作。析构函数特别重要，尤其是在涉及动态分配的资源（如内存、文件句柄、网络连接等）的情况下。基本特性名称：析构函数的名称由波浪号（）后跟类名构成，如~MyClass()。无返回值和参数：析构函数不接受任何参数，也不返回任何值。自动调用：当对象的生命周期结束时（例如，一个局部对象的作用域结束，或者使用delete删除一个动态分配的对象），析构函数会被自动调用。不可重载：每个类只能有一个析构函数。]]></description><category></category></item><item><title><![CDATA[QT第18-22节课程笔记 - 构造函数 - 拷贝构造函数完整笔记]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135091992</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135091992</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 19:05:25 +0800</pubDate><description><![CDATA[类的构造函数是类的一种特殊的成员函数，它会在每次创建类的新对象时执行。构造，那构造的是什么呢？构造成员变量的初始化值，内存空间等构造函数的名称与类的名称是完全相同的，并且不会返回任何类型，也不会返回 void。构造函数可用于为某些成员变量设置初始值。// 使用std命名空间public:// 不需要使用std::stringint year;// 无参构造函数Car() {brand = "未知";year = 0;cout << "无参构造函数被调用" << endl;]]></description><category></category></item><item><title><![CDATA[QT第17节课程笔记-重载]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135088617</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135088617</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 16:44:40 +0800</pubDate><description><![CDATA[这种做法在设计类的时候是很有用的，因为它可以确保某些函数不会意外地改变对象的状态，同时也使得这个函数可以在常量对象上被调用。等）在自定义类型（类或结构体）上的行为的特性。这意味着你可以定义类似于内置类型的运算符行为，使你的自定义类型更加直观和易于使用。这些同名函数的形式参数（指参数的个数、类型或者顺序）必须不同。运算符重载是C++中提高代码可读性和表达力的强大工具，但需要谨慎使用，以保证代码的清晰性和维护性。在同一个作用域内，可以声明几个功能类似的同名函数，类型的常量引用作为参数，并返回两个点相加的结果。]]></description><category></category></item><item><title><![CDATA[QT第16节课程笔记-引用]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135087584</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135087584</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 16:15:04 +0800</pubDate><description><![CDATA[因此，第一个声明可以读作 “r 是一个初始化为 i 的整型引用”，第二个声明可以读作 “s 是一个初始化为 d 的 double 型引用”。试想变量名称是变量附属在内存位置中的标签，您可以把引用当成是变量附属在内存位置中的第二个标签。在C语言中，一个数据对应一个内存，通过由一个变量名来访问这个内存空间的数据，叫做直接访问，相对直接访问，有个间接访问的说法，叫做指针。所以返回一个对局部变量的引用是不合法的，但是，可以返回一个对静态变量的引用。引用变量是一个别名，也就是说，它是某个已存在变量的另一个名字。]]></description><category></category></item><item><title><![CDATA[QT第15节课程笔记 -C++权限初识]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135084855</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135084855</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 14:52:08 +0800</pubDate><description><![CDATA[publicprivate和protected。这些权限决定了类成员（包括数据成员和成员函数）的可访问性。访问权限类内部同一个类的对象派生类（子类）类外部public✔️ 可访问✔️ 可访问✔️ 可访问✔️ 可访问private✔️ 可访问❌ 不可访问❌ 不可访问❌ 不可访问protected✔️ 可访问❌ 不可访问✔️ 可访问❌ 不可访问使用权限（如publicprivate和protected）在C++中是一种关键的封装手段，它们旨在控制对类成员的访问。]]></description><category></category></item><item><title><![CDATA[QT第12-14节课程笔记-类的引入]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135082155</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135082155</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 13:05:20 +0800</pubDate><description><![CDATA[例如，如果你有一个“汽车”类，它可能包含颜色、品牌、型号等属性（数据成员），以及启动、停止、加速等行为（成员函数）。每当你基于这个类创建一个对象时，你就有了一个具体的汽车，具有这些属性和行为。在 C++中，一个类包含另一个类的对象称为组合（Composition）。这是一种常见的设计模式，用于表示一个类是由另一个类的对象组成的。C++ 中的类（class）是一种编程结构，用于创建对象。把main函数中的原本结构体变量改成了类的实例化，如果变量类型是指针，把原来的malloc改成new一个对象。]]></description><category></category></item><item><title><![CDATA[QT第十十一课程笔记 - 数组和练习]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135075001</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135075001</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 02:06:27 +0800</pubDate><description><![CDATA[在 C++ 中，数组是一种存储固定大小的相同类型元素的序列。数组的所有元素都存储在连续的内存位置上。这种数据结构非常适合于存储具有固定数量和相同数据类型的元素集合。您可以通过指定索引来访问数组中的元素。数组索引是从 0 开始的，所以数组的第一个元素是。加入Lambda表达式和回调函数的做法（例如，声明一个类型为。]]></description><category></category></item><item><title><![CDATA[QT第五六七节课笔记 - 用C语言快速入门]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135074988</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135074988</guid><author>chenlichenforlinux21</author><pubDate>Tue, 19 Dec 2023 02:00:28 +0800</pubDate><description><![CDATA[它们是编程中的基本构建块，允许程序根据条件执行不同的代码段，重复执行某些操作，或者根据特定情况跳过某些代码段。这意味着编译器会尝试将函数调用替换为函数本身的代码，这样可以减少函数调用的开销，尤其是在小型函数中。在 C++ 中，函数是一段执行特定任务的代码块，它可以带有参数，并且可能返回一个值。流程控制语句是编程中非常重要的部分，允许开发者编写可以根据不同情况改变行为的灵活且强大的程序。内联函数是一种用于优化程序性能的工具，但需要合理使用，以确保代码的可维护性和性能的平衡。：当条件为真时，重复执行代码块。]]></description><category></category></item><item><title><![CDATA[QT第八九节课笔记-Lambda表达式]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135067979</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135067979</guid><author>chenlichenforlinux21</author><pubDate>Mon, 18 Dec 2023 17:35:48 +0800</pubDate><description><![CDATA[Lambda 函数]]></description><category></category></item><item><title><![CDATA[QT视频第四节课笔记-命名空间]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135067859</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135067859</guid><author>chenlichenforlinux21</author><pubDate>Mon, 18 Dec 2023 17:31:30 +0800</pubDate><description><![CDATA[命名空间解读，自定义命名空间]]></description><category></category></item><item><title><![CDATA[QT视频第一二三节课笔记-QT简介及环境搭建]]></title><link>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135058423</link><guid>https://blog.youkuaiyun.com/chenlichenforlinux21/article/details/135058423</guid><author>chenlichenforlinux21</author><pubDate>Mon, 18 Dec 2023 11:19:47 +0800</pubDate><description><![CDATA[Qt 是一个跨平台的应用程序和用户界面框架，用于开发图形用户界面（GUI）应用程序以及命令行工具。它最初由挪威的 Trolltech （奇趣科技）公司开发，现在由 Qt Company 维护，2020年12月8日发布QT6。Qt 使用 C++ 语言编写，支持多种编程语言通过绑定进行使用。对于许多开发者和小型企业来说，Qt 的开源版提供了一个强大且灵活的开发框架，而对于需要额外支持和专有功能的大型企业或具有特定需求的项目，商业版则提供了所需的服务和资源。Qt 商业版。]]></description><category></category></item></channel></rss>