
C++的学习笔记
文章平均质量分 92
Tech行者
自由工作职业者,可指导课程设计、毕业设计、数学分析、数学建模等,性价比超高,VX:JSJ2548359290,两次获得国家奖学金-中国电信奖学金-国家励志奖学金选手,磨练中,拿过几个小奖,努力在世间挣扎的菜鸟,分享代码的乐趣,立志以专业之学,报社会之需!!!
展开
-
侯捷C++系列课程学习笔记
特化(Specialization)与偏特化(Partial Specialization)。容器(Containers)、算法(Algorithms)、迭代器(Iterators)适配器(Adapters)、仿函数(Functors)、分配器(Allocators)资源获取即初始化,通过对象生命周期管理资源(如智能指针)。虚函数表(vtable)与虚指针(vptr)的底层机制。虚函数表指针(vptr)的位置(通常位于对象头部)。类与对象的关系:类为蓝图,对象为实例。关键字的作用,动态绑定的实现原理。原创 2025-03-10 03:08:20 · 925 阅读 · 0 评论 -
C++实现一个简单的学生管理系统
这个学生管理系统的设计包括了以下几个方面: 学生类(Student)的定义:包括学生的姓名、年龄、性别等信息,并提供了显示信息、从文件中读取信息、将信息写入文件等功能。 学生管理类(StudentManager)的定义:包括添加、查询和删除学生信息的功能,以及将学生信息保存到文件的功能。 在主函数中使用上述两个类来实现一个简单的学生管理系统:通过用户输入实现添加、查询和删除学生信息的功能,并将修改后的学生信息保存到文件中。整体而言,这个学生管理系统提供了基本的学生信息管理功原创 2024-01-21 14:00:28 · 1267 阅读 · 4 评论 -
calloc与realloc和malloc的区别以及new
newmalloccalloc、realloc 和 malloc 是 C/C++ 中用于动态内存分配的函数。malloc 函数:malloc 函数用于在堆上分配指定大小的内存块。它接受一个参数,即所需内存块的字节数,返回一个指向分配内存的指针。如果分配失败,则返回 NULL。calloc 函数:calloc 函数类似于 malloc 函数,但它还会将分配的内存块初始化为零。它接受两个参数,即所需内存块的个数和每个内存块的字节数。它返回一个指向分配内存的指针。如果分配失败,则返回 NULL。原创 2024-01-20 03:22:05 · 1935 阅读 · 0 评论 -
C++学习笔记——SLT六大组件及头文件
GNU通用公共许可证(GNU General Public License,GPL):GPL是GNU项目下的主要许可证,它保护了软件的自由性,确保用户在任何使用、修改和分发软件时都能保持相同的自由。自由软件(Free Software):根据GNU的定义,自由软件是指用户可以自由地运行、复制、分发、研究、修改和改进的软件。GNU源代码开发精神的目标是让用户能够控制和定制自己使用的软件,避免对专有软件的依赖和束缚。算法(Algorithms):提供了大量的算法,包括排序、查找、拷贝、合并等。原创 2024-01-14 22:51:21 · 1755 阅读 · 0 评论 -
C++学习笔记——C++ 新标准(C++11、C++14、C++17)引入的重要特性
C++ 是一种功能强大的编程语言,它一直在不断发展和演进。自从 C++11 标准发布以来,C++ 引入了许多重要的新特性,如智能指针、Lambda 表达式、右值引用等。随后的 C++14 和 C++17 标准也带来了更多的改进和增强。本篇博客将详细介绍 C++ 新标准引入的一些重要特性,并给出代码示例和详细解释,帮助读者了解和应用这些特性。原创 2024-01-13 18:58:44 · 1444 阅读 · 0 评论 -
C++学习笔记——输入、输出和文件
上一篇文章链接:C++ 是一门功能强大的编程语言,它提供了很多工具来实现各种编程任务。在本文中,我们将介绍 C++ 中的三个重要概念:友元、嵌套类和异常。C++学习笔记——友元、嵌套类、异常-优快云博客文章浏览阅读20次。友元、嵌套类和异常是 C++ 中三个重要的概念,它们可以提高程序的灵活性、封装性和健壮性。但是,需要注意的是过度使用它们会破坏程序的封装性、增加代码的复杂度和影响程序的性能。因此,在编写程序时,应根据实际情况选择适当的编程技术来提高程序的可读性、可维护性和可靠性。原创 2024-01-13 18:43:05 · 1123 阅读 · 0 评论 -
C++学习笔记——标准模板库
C++标准模板库(STL)是C++的一个重要组成部分,它提供了一套丰富的通用数据结构和算法。STL以其高度模块化、可复用的特性,在C++编程中发挥着重要作用。本篇博客将带你深入了解STL,并介绍其常见的组件和使用方法。C++标准模板库(STL)是C++语言的一个标准库,它提供了一套通用的数据结构和算法,以支持高效的编程。STL的设计目标是使程序员能够以简洁、高效和可复用的方式开发代码。// 输出vector的大小return 0;原创 2024-01-13 18:42:31 · 1527 阅读 · 0 评论 -
C++学习笔记——友元、嵌套类、异常
友元、嵌套类和异常是 C++ 中三个重要的概念,它们可以提高程序的灵活性、封装性和健壮性。但是,需要注意的是过度使用它们会破坏程序的封装性、增加代码的复杂度和影响程序的性能。因此,在编写程序时,应根据实际情况选择适当的编程技术来提高程序的可读性、可维护性和可靠性。原创 2024-01-13 17:40:19 · 1104 阅读 · 0 评论 -
C++学习笔记——私有继承、多重继承、类模板
例如,我们可以使用模板参数来定义成员变量和成员函数,或者使用特化(partial specialization)和偏特化(full specialization)来针对不同的情况实现不同的行为。私有继承是一种比较特殊的继承方式,它在语法上与公有继承和保护继承没有太大区别,但是其继承关系所暴露的接口和成员变量都会被隐藏起来,只有派生类自己可以访问到基类的成员。此外,多重继承也可以用来实现接口继承和实现继承的分离,从而更好地实现面向对象的编程思想。是一个类模板,可以使用不同类型的数据来实例化。原创 2024-01-13 17:30:05 · 1557 阅读 · 0 评论 -
C++代码重用:继承与组合的比较
当涉及到代码重用时,继承和组合是两种常见的机制。下面将更详细地介绍它们的特点、使用方式以及各自的优缺点。原创 2024-01-12 23:24:35 · 1243 阅读 · 1 评论 -
C++学习笔记——多态与静态联编和动态联编
是C++中面向对象编程的一个核心概念,它允许派生类对象替代其基类对象,从而实现代码重用和扩展。公有继承是一种实现多态性的方式。公有继承是指在派生类中定义了与基类中同名的成员函数,当使用基类指针或引用调用该函数时,实际调用的是派生类中的版本。这种行为被称为函数重写(Function Overriding)或运行时多态性(Run-time Polymorphism)。在这个示例中,我们定义了一个基类Animal和一个派生类Dog。基类中有一个虚函数makeSound,它被派生类重写。在main。原创 2024-01-12 23:13:39 · 1456 阅读 · 0 评论 -
C++学习笔记——继承和动态内存分配
C++学习笔记——继承和动态内存分配——继承和动态内存分配是C++中两个重要的概念。原创 2024-01-11 03:03:31 · 1189 阅读 · 1 评论 -
C++学习笔记——类继承
通过继承和多态性的机制,基类和派生类之间建立了一种强大的关系,使得面向对象程序具有更好的可维护性和可扩展性。通过使用基类指针或引用来引用派生类的对象,可以以相同的方式调用基类的成员函数,从而实现代码的灵活性和可扩展性。因此,在分析成本和评估绩效时,要以客户为中心,关注他们的需求和反馈,并根据客户的需求来制定产品和服务的设计、生产和销售策略。强调活动的重要性:企业的成本和绩效不仅取决于产品和服务本身,还受到生产和销售过程中的各种活动的影响。关键字,派生类将继承基类的保护成员,并将其作为自己的保护成员。原创 2024-01-11 01:24:34 · 1061 阅读 · 0 评论 -
C++学习笔记——队列模拟
C++笔记——队列模拟 当涉及到数据存储和处理时,队列是一种常见的数据结构,遵循先进先出(FIFO)的原则。对于使用数组实现的队列:10. 数组必须具有固定大小,以存储队列中的元素。11. 使用两个指针(front和rear)来跟踪队首和队尾的位置。12. 入队操作将元素插入到rear指针所指向的位置,然后将rear指针向后移动。13. 出队操作将front指针向后移动,并返回front指针所指向的元素。对于使用链表实现的队列:14. 链表可以动态地增加和删除节点,没有固定大小的限制。原创 2024-01-11 00:43:37 · 1158 阅读 · 0 评论 -
C++学习笔记——对象的指针
C++学习笔记——对象的指针是一种常用的技术,用于处理对象的动态分配和管理。new对象的生命周期管理:通过手动管理对象的创建和销毁,可以更灵活地控制对象的生命周期。例如,可以根据需要创建和销毁对象,而不是在程序的开始和结束时进行。对象的共享和传递:通过指针,可以轻松地共享和传递对象。多个指针可以指向同一个对象,从而实现多个地方对同一对象的访问和修改。对象的多态性:通过基类指针指向派生类对象,可以实现多态性。这样可以根据实际的对象类型,在运行时决定调用哪个函数。例如。原创 2024-01-10 21:37:26 · 1798 阅读 · 0 评论 -
C++学习笔记——返回对象
C++学当我们说一个函数返回对象时,意味着该函数的返回值是一个对象。这种情况下,函数可以通过创建对象的副本、返回对象的引用或者返回对象的指针来实现。返回对象的副本: 当一个函数返回对象的副本时,函数内部会创建一个临时对象,并将其作为返回值。编译器会调用拷贝构造函数来创建这个副本。副本的初始化是通过将原始对象的属性值复制到新创建的对象中实现的。然后,该副本会被返回给调用函数。这样做允许我们在函数之外使用返回的对象,而不会对原始对象进行修改。需要注意的是,返回对象的副本可能会产生额外的开销,特别是当对象较大时。原创 2024-01-10 21:28:25 · 1688 阅读 · 0 评论 -
C++学习笔记——string类和new函数
C++学习笔记——string类和new函数引言: 在C++编程中,字符串处理是一个常见且重要的任务。标准库提供了std::string类来处理字符串,但有时候我们需要更多的功能或者更高的性能。为此,我们可以自定义一个改进后的String类,通过添加额外的功能和优化性能来满足我们的需求。原创 2024-01-08 18:58:56 · 2340 阅读 · 2 评论 -
C++类和动态内存分配
在C++编程中,类是一种重要的概念,它允许我们将数据和操作封装在一起,以实现更加模块化和可维护的代码。而动态内存分配则提供了在程序运行时动态创建和释放内存的能力,使我们能够更灵活地管理内存资源。本文将探讨C++类与动态内存分配的相关知识,并介绍如何在实际编程中正确使用它们。原创 2024-01-08 18:40:34 · 1373 阅读 · 0 评论 -
C++ 学习笔记之运算符重载+案例
/ 成员函数形式public:// 定义加法操作的实现// 全局函数形式// 定义加法操作的实现。原创 2024-01-07 11:59:58 · 1203 阅读 · 0 评论 -
C++学习笔记——类作用域和抽象数据类型
C++学习笔记——StudentManager类表示一个学生信息管理器,用于添加学生,显示所有学生信息和计算学生平均分。然后,我们使用displayAllStudents函数显示所有学生的信息,并使用calculateAverageScore函数计算学生的平均分,并将结果打印出来。它具有一个构造函数用于初始化学生对象,一个displayInfo函数用于显示学生信息,以及一个getScore函数用于获取学生的成绩。通过类作用域的概念,我们可以在类定义中方便地组织和访问成员变量和成员函数,并控制它们的可访问性。原创 2024-01-06 17:05:33 · 1328 阅读 · 0 评论 -
C++学习笔记 ——this指针+对象数组
C++中的this指针是一个特殊的指针,它指向当前对象的地址。在类中的成员函数中,this指针可以用来访问当前对象的成员变量和成员函数。当我们调用一个对象的成员函数时,编译器会自动将当前对象的地址作为参数传递给该函数,并将其存储在一个名为this的隐式参数中。在函数内部,我们可以通过this指针来访问该对象的成员变量和成员函数。this指针是一个指向当前对象的常量指针,它存储了当前对象的地址。通过this指针,我们可以在成员函数内部访问和操作当前对象的成员变量和成员函数。原创 2024-01-06 16:55:03 · 1011 阅读 · 0 评论 -
c++之迭代器
需要注意的是,迭代器不仅可以用于遍历容器元素,还可以用于对容器进行各种操作,如插入、删除和排序等。例如,在vector容器中,我们可以使用insert函数在任意位置插入新元素,使用erase函数删除指定位置的元素,使用sort函数对元素进行排序等。通过迭代器,我们可以在不知道容器内部数据结构的情况下访问和修改容器中的数据,从而提高代码的可读性和可维护性。通过迭代器,可以以一种统一的方式来遍历容器,并且可以在遍历过程中对容器进行各种操作,如查找、插入、删除和排序等。的结构体,用于表示学生的姓名和年龄属性。原创 2024-01-05 14:23:00 · 1714 阅读 · 2 评论 -
C++之STL库简介
迭代器(Iterators):STL库提供了多个迭代器类,包括input_iterator、output_iterator、forward_iterator、bidirectional_iterator、random_access_iterator等,这些迭代器类支持不同的遍历方式和访问方式,可以帮助程序员快速、方便地访问容器中的元素。算法(Algorithms):STL库提供了大量的算法函数,包括查找、排序、变换、数值计算等,这些算法函数可以对容器中的元素进行操作,从而实现各种有用的功能。原创 2024-01-05 14:14:10 · 1682 阅读 · 0 评论 -
C++对象与内联函数
当涉及到C++对象时,有几个重要的概念需要了解:类、对象、成员函数和成员变量。类(Class):类是一种用户自定义的数据类型,它是一种封装了数据和相关操作的模板。类包含了数据成员和成员函数,用于描述对象的属性和行为。对象(Object):对象是类的实例化。通过使用类定义的模板,我们可以创建多个具体的对象,每个对象都有自己的属性和行为。对象是类的实体,在内存中占用一定的空间。成员函数(Member Function):成员函数是定义在类中的函数,用于操作类的对象。原创 2024-01-03 22:44:19 · 895 阅读 · 0 评论 -
C++初阶——类与对象
总之,C++ 中的宏函数是通过预处理器定义的宏,用于实现简单的函数功能。它们在编译前进行文本替换,没有函数调用的开销,但可能存在潜在的问题,因此在实际编程中建议使用内联函数或模板代替宏函数。总之,在使用宏函数时,需要注意上述常见的错误,并尽量避免使用宏函数可能带来的潜在问题。需要注意的是,宏函数的展开是在编译前进行的,因此宏函数中的参数没有类型检查。可以使用常量表达式:宏函数可以使用常量表达式作为参数,这些表达式在编译时就会被计算,并且展开后的代码也是常量表达式,可以进行编译时的优化。原创 2024-01-02 23:06:00 · 952 阅读 · 0 评论 -
C++初阶——权限与继承
(2)但是在派生类还是可以调用基类的同名成员的,可以使用指定域名的方法:父类::成员;显示的指定要调用父类的成员而不是派生类的成员;C++ 中的访问权限(Access Specifiers)管控和继承机制是面向对象编程的重要概念之一。通过访问权限和继承,可以控制类成员的可见性和访问级别。默认情况下,类的成员是私有的。C++ 中的继承机制允许一个类(称为派生类或子类)从另一个类(称为基类或父类)继承属性和行为。通过继承,派生类可以获得基类的属性和行为,并且可以在派生类中添加新的成员或修改继承的成员。原创 2024-01-01 17:52:27 · 1149 阅读 · 0 评论 -
读书笔记2-C++ Primer Plus(第二章完结)
C++是在C语言基础上开发的一种集面向对象编程(OOP)、通用编程和传统的过程化编程于一体的编程语言。本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。原创 2024-01-01 16:43:13 · 1074 阅读 · 0 评论 -
读书笔记1-C++ Primer Plus
C++是在C语言基础上开发的一种集面向对象编程(OOP)、通用编程和传统的过程化编程于一体的编程语言。本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。原创 2023-12-31 23:34:56 · 1003 阅读 · 0 评论 -
C++初阶——基础知识(函数重载与引用)
类域命名空间域局部域全局域第一个关键字命名冲突同一个项目之间冲突预作用限定符::命名空间缺省参数。原创 2023-12-30 21:25:09 · 1401 阅读 · 0 评论 -
详解C++实现快速排序的原理、时间复杂度及优化方法
本文介绍了快速排序算法的原理和实现方法,并通过C++代码展示了具体实现。快速排序的基本思想是分治法,即通过递归将一个大问题划分成多个小问题来实现排序。在实现过程中,需要选择合适的基准元素,可以使用随机化或者三数取中等方式来避免最坏情况的出现,并且可以使用插入排序等优化手段来提高排序性能。快速排序的时间复杂度为O(n log n),而在最坏情况下可能会退化为O(n^2)。快速排序是一种非常实用和高效的排序算法,被广泛应用于各种软件开发和计算机科学领域。原创 2023-05-01 21:00:24 · 1711 阅读 · 0 评论 -
从零开始学习C++类与对象
本文主要介绍了 C++ 类与对象的基础内容,包括类和对象的定义、声明和使用。其中,我们首先介绍了类和对象的基本概念,以及它们之间的关系。接着,我们通过一个图书类的例子详细说明了如何使用 class 关键字来定义一个类,并且在类中添加数据成员和成员函数。随后,我们演示了如何使用 new 关键字来创建类对象,并对其进行操作和查看。最后,我们总结了 C++ 类与对象的基本特点,包括封装、继承和多态性等特性,并且提醒了程序员需要注意内存分配和释放问题。通过学习本文,读者可以深入理解 C++ 中的面向对象原创 2023-04-22 09:42:14 · 628 阅读 · 1 评论 -
指针在C++中的应用及顺序表结构体中的应用
介绍了指针在C++中的应用,包括指针的概要、一级指针和二级指针的区别、指针的动态内存分配、指针参数的传递等。同时,通过一个生动的例子展示了使用二级指针来计算班级平均分的过程,并讲解了顺序表结构体中指针的应用。在实际开发中,指针是一个非常重要的工具,对于深入理解C++编程语言的原理以及更加高效地进行程序开发都具有重要意义。原创 2023-04-15 14:34:19 · 838 阅读 · 0 评论 -
C++函数特性全面解析:缺省参数、函数重载以及编译过程
主要介绍了C++函数特性的两个部分:缺省参数和函数重载,以及与之相关的编译过程。在讲解缺省参数方面,详细介绍了它的语法格式、使用方法以及和C语言的区别。在讲解函数重载方面,阐述了它的作用、原理以及在其他编程语言中的应用情况。此外,还简要介绍了程序的编译过程,并指出了四个阶段的具体作用。原创 2023-04-15 12:09:02 · 929 阅读 · 0 评论