
C++
文章平均质量分 56
一些C++基础知识
my hope !
这个作者很懒,什么都没留下…
展开
-
C++—模板
在 C++ 中,模板(Template)是一种通用的编程工具,允许程序员编写,使得而不需要重复编写相似的代码。C++ 提供了两种主要类型的模板:类模板和函数模板。原创 2024-02-04 20:41:51 · 211 阅读 · 0 评论 -
C++——输入输出
C++ 中的输入和输出(I/O)主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 库,它提供了用于输入和输出的基本流类,包括 cin 、 cout 、 cerr 和 clog。原创 2024-02-04 04:19:40 · 361 阅读 · 0 评论 -
C++——输入输出
C++ 中的输入和输出(I/O)主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 库,它提供了用于输入和输出的基本流类,包括 cin 、 cout 、 cerr 和 clog。原创 2024-02-02 22:38:46 · 611 阅读 · 0 评论 -
C++——构造函数
类的是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造,那构造的是什么呢?构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。原创 2024-02-02 22:37:47 · 444 阅读 · 0 评论 -
C++——权限对继承的影响
在C++中,访问控制符对继承的影响可以通过下表来清晰地展示。这个表格展示了不同类型的继承( public 、 protected 、 private )如何影响基类的不同类型成员( public 、 protected 、private )在派生类中的访问级别。这个表格提供了一个快速参考,帮助理解在不同类型的继承中基类成员的访问级别是如何变化的。记住,无论继承类型如何,基类的 private 成员始终不可直接在派生类中访问。bike.type = “死飞”;原创 2024-02-02 12:23:31 · 379 阅读 · 0 评论 -
C++——权限
C++中的访问权限主要分为三种: public 、 private 和 protected。这些权限决定了类成员(包括数据成员和成员函数)的可访问性。以下是一个总结表格,说明了在不同情况下这些权限如何应用:使用权限(如 public 、 private 和 protected )在C++中是一种关键的封装手段,它们旨在控制对类成员的访问。原创 2024-02-02 12:22:42 · 531 阅读 · 0 评论 -
C++——命名空间
C和C++之间的关系是紧密且复杂的。C++最初是作为C语言的一个扩展开发的,目的是在不放弃C的强大功能和效率的同时,增加对象导向编程、泛型编程和其他一些特性。下面是C和C++之间主要的关系和区管可能需要一些小的修改。言,不支持这些概念,或者说支持的不好,麻烦。:C++支持模板,这是一种允许程序员编写与数据类型无关的代码的功能。C没有这个功能。:C++有一个更丰富的标准库,包括STL(标准模板库),这为数据结构和算法提供了广泛的支持。而C的标准库相对较小。C++中可能无法编译。原创 2024-02-02 12:21:54 · 585 阅读 · 0 评论 -
C++——流程控制
在 C++ 中,流程控制语句用于根据不同条件控制程序的执行流程。它们是编程中的基本构建块,允许程序根据条件执行不同的代码段,重复执行某些操作,或者根据特定情况跳过某些代码段。原创 2024-02-02 12:21:24 · 317 阅读 · 0 评论 -
C++——类
C++ 中的类(class)是一种编程结构,用于创建对象。这些对象可以拥有属性(即数据成员)和行为(即成员函数或方法)。类的概念是面向对象编程的核心之一,其主要目的是将封装在一起。例如,如果你有一个“汽车”类,它可能包含颜色、品牌、型号等属性(数据成员),以及启动、停止、加速等行为(成员函数)。每当你基于这个类创建一个对象时,你就有了一个具体的汽车,具有这些属性和行为。:定义类的属性。这些是类内部的变量,用于存储对象的状态。:定义类的行为。这些是可以操作对象的数据成员的函数。:特殊的成员函数。原创 2024-02-02 12:20:50 · 974 阅读 · 0 评论 -
C++——静态成员
静态成员在C++类中是一个重要的概念,它包括静态成员变量和静态成员函数。静态成员的特点和存在的例,静态成员变量只有一份拷贝。:静态成员变量需要在类外进行初始化,通常在类的实现文件中。:静态成员变量可以通过类名直接访问,不需要创建类的对象。也可以通过类的对象访问。:常用于存储类级别的信息(例如,计数类的实例数量)或全局数据需要被类的所有实例共享。非静态成员函数。:类似于静态成员变量,静态成员函数可以通过类名直接调用,也可以通过类的实例调用。:常用于实现与具体对象无关的功能,或访问静态成员变量。原创 2024-02-02 12:20:04 · 412 阅读 · 0 评论 -
C++——接口
C++——接口基本概念在 C++ 中,虽然没有像其他编程语言(比如 Java 中的接口Interface)一样直接定义接口的关键字,但可以通过抽象类和纯虚函数的方式来实现接口的概念。接口通常用于定义类应该实现的方法,但不提供具体实现。这样的实现方式允许多个类共享相同的接口,同时让每个类根据需要去实现这些接口。一个类作为接口可以通过以下步骤来实现:定义抽象类:创建一个包含纯虚函数的抽象类,这些函数构成了接口的一部分。这些函数在抽象类中只有声明而没有具体的实现。派生类实现接口:派生类继承抽原创 2024-02-02 12:19:34 · 1644 阅读 · 0 评论 -
C++——阶段练习(简易计算器)
【代码】C++——阶段练习(简易计算器)原创 2024-02-02 12:18:29 · 170 阅读 · 0 评论 -
C++——继承
继承是面向对象编程(OOP)中的一个核心概念,特别是在C++中。它允许一个类(称为派生类或子类)继承另一个类(称为基类或父类)的属性和方法。继承的主要目的是实现代码重用,以及建立一种类型之间的层次关系。:子类继承了父类的属性和方法,减少了代码的重复编写。:子类可以扩展父类的功能,添加新的属性和方法,或者重写(覆盖)现有的方法。:通过继承和虚函数,C++支持多态,允许在运行时决定调用哪个函数。原创 2024-02-02 12:17:54 · 268 阅读 · 0 评论 -
C++——基类构造函数
当创建派生类的对象时,基类的构造函数总是在派生类的构造函数之前被调用。如果没有明确指定,将调用基类的默认构造函数。如果基类没有默认构造函数,或者你需要调用一个特定的基类构造函数,当 Derived 类的对象被创建时,首先调用 Base 类的构造函数,然后调用 Derived 类的构造函数。在C++中,派生类可以通过其构造函数的初始化列表来调用基类的构造函数。Derived 类继承自 Base ,它的构造函数接受一个整数和一个双精度浮点数。它调用 Base 类的构造函数,并传递整数参数。原创 2024-02-02 12:16:32 · 622 阅读 · 0 评论 -
C++——函数与内联函数
内联函数的定义(而非仅仅是声明)必须对每个使用它的文件都可见,通常意味着将内联函数定义在头文件中。原创 2024-02-02 12:16:15 · 440 阅读 · 0 评论 -
C++——多重继承
在C++中,多重继承是一种允许一个类同时继承多个基类的特性。这意味着派生类可以继承多个基类的属性和方法。多重继承增加了语言的灵活性,但同时也引入了额外的复杂性,特别是当多个基类具有相同的成员时。原创 2024-02-01 23:52:23 · 238 阅读 · 0 评论 -
C++——多态
想象一下,你有一个遥控器(这就像是一个基类的指针),这个遥控器可以控制不同的电子设备(这些设备就像是派生类)。无论是电视、音响还是灯光,遥控器上的“开/关”按钮(这个按钮就像是一个虚函数)都能控制它们,但具体的操作(打开电视、播放音乐、开灯)则取决于你指向的设备。原创 2024-02-01 23:50:00 · 370 阅读 · 0 评论 -
C++——抽象类
这个概念告诉你所有交通工具都应该能做什么,比如移动(move),但它并不具体说明怎么移动。对于不同的交通工具,比如汽车和自行车,它们的移动方式是不同的。在这个意义上,“交通工具”是一个抽象的概念,因为它本身并不能直接被使用。你需要一个具体的交通工具,比如“汽车”或“自行车”,它们根据“交通工具”的概念具体实现了移动的功能。这意味着,抽象类定义了派生类应该具有的功能,但不完全实现这些功能。抽象类的主要目的是为派生类提供一个共同的基础结构,确保所有派生类都有一致的接口和行为。何地方,你需要一个具体的交通工具。原创 2024-02-01 23:48:37 · 471 阅读 · 0 评论 -
C++——this关键字
在 C++ 中, this 关键字是一个。它在成员函数内部使用,用于引用调用该函数的对象。使用 this 可以明确指出成员函数正在操作的是哪个对象的数据成员。原创 2024-02-01 23:48:19 · 390 阅读 · 0 评论 -
C++——new关键字
在C++中, new 关键字用于动态分配内存。它是C++中处理动态内存分配的主要工具之一,允许在程序运行时根据需要分配内存。原创 2024-02-01 23:45:42 · 1394 阅读 · 0 评论 -
C++——Lambda表达式
Lambda 表达式是 C++11 引入的一种的方式,它允许你在需要函数的地方内联地定义函数,而无需单独命名函数:用于捕获外部变量,在 Lambda 表达式中可以访问这些变量。捕获列表可以为空,也可以包含变量列表 [var1, var2, …]。:与普通函数的参数列表类似,可以为空或包含参数列表 (param1,param2, …)。:Lambda 表达式可以自动推断返回类型auto,也可以显式指定返回类型 -> return_type。如果函数体只有一条返回语句,可以省略返回类型。原创 2024-02-01 23:44:47 · 1256 阅读 · 0 评论 -
C++——字符串string
在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。字符 ‘\0’ 结尾的字符数组)的一个更安全、更方便的封装。: string 类提供了各种操作字符串的方法,如 append() (添加)、 insert():由于 string 管理其自己的内存,因此减少了内存泄漏和缓冲区溢出的风险。(插入)、 erase() (删除)、 substr() (获取子字符串)等。C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题。的,并且位于 std 命名空间中。原创 2024-02-01 23:43:52 · 257 阅读 · 0 评论 -
C++——重载
不能重载两个基本类型的运算符。原创 2024-02-01 23:43:22 · 412 阅读 · 0 评论 -
C++——引用
因此,第一个声明可以读作 “r 是一个初始化为 i 的整型引用”,第二个声明可以读作 “s 是一个初始化为 d 的 double 型引用”。试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二=个标签。当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。C++ 函数可以返回一个引用,方式与返回一个指针类似。一旦引用被初始化为一个对象,就不能被指向到另一个对象。引用必须连接到一块合法的内存。原创 2024-02-01 23:42:39 · 208 阅读 · 0 评论 -
C++——虚继承与菱形继承
虚继承是C++中一种特殊的继承方式,主要用来解决多重继承中的菱形继承问题。在菱形继承结构中,一个类继承自两个具有共同基类的类时,会导致共同基类的成员在派生类中存在两份拷贝,这不仅会导致资源浪费,还可能引起数据不一致的问题。虚继承是C++语言中处理复杂继承关系的一种重要机制,但它也带来了一定的复杂性和性能考虑。:在使用虚继承时,虚基类(如上例中的 Base 类)只能由最派生的类(如FinalDerived )初始化。:虚继承可能会改变类的内存布局,通常会增加额外的开销,比如虚基类指针。原创 2024-02-01 23:42:07 · 445 阅读 · 0 评论 -
C++——虚函数
在C++中, virtual 和 override 关键字用于支持多态,尤其是在涉及类继承和方法重写的情况下。正确地理解和使用这两个关键字对于编写可维护和易于理解的面向对象代码至关重要。原创 2024-02-01 23:41:02 · 197 阅读 · 0 评论 -
C++——析构函数
当 obj 的生命周期结束时(即离开了它的作用域), MyClass 的析构函数被自动调用,负责清理资源,防止内存泄露。析构函数是C++中的一个特殊的成员函数,它在对象生命周期结束时被自动调用,用于执行对象销毁前的清理工作。标注粗体部分,是能快速上手的内容,方便后续QT的学习,而没有粗体的部分,会在QT结束后,如果安排C++深入讲解的课程的话,会安排到。:当对象的生命周期结束时(例如,一个局部对象的作用域结束,或者使用 delete 删除。一个动态分配的对象),析构函数会被自动调用。原创 2024-02-01 23:40:32 · 1804 阅读 · 0 评论 -
C++——数组和指针
在 C++ 中,数组是一种存储固定大小的相同类型元素的序列。数组的所有元素都存储在连续的内存位置上。这种数据结构非常适合于存储具有固定数量和相同数据类型的元素集合。您可以通过指定索引来访问数组中的元素。原创 2024-02-01 23:40:01 · 521 阅读 · 0 评论 -
C++——数据类型
C++ 基本数据类型整理成表格。以下是一个表格,展示了不同的基本数据类型及其一般用途和大小范围:和C语言类似。原创 2024-02-01 23:39:28 · 384 阅读 · 0 评论 -
C++——输入输出
C++ 中的输入和输出(I/O)主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 库,它提供了用于输入和输出的基本流类,包括 cin 、 cout 、 cerr 和 clog。原创 2024-02-01 23:38:28 · 367 阅读 · 0 评论