
C++学习笔记
文章平均质量分 75
共同进步
四代目 水门
绵绵发力,久久为功。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 智能指针
核心概念本质是重载了->和操作符的类自动管理动态分配的内存资源保证异常安全,避免内存泄漏C++11 智能指针类型类型特点头文件unique_ptr独占所有权,不可复制<memory>shared_ptr共享所有权,引用计数机制<memory>weak_ptr弱引用,解决循环引用问题<memory>与传统指针对比cpp// 传统指针(需手动管理)delete p;// 智能指针(自动管理)特性unique_ptrshared_ptrweak_ptr所有权独占共享。原创 2025-03-14 07:00:00 · 1664 阅读 · 0 评论 -
C++ 虚继承
适用场景:解决多继承中的菱形继承问题设计代价:增加内存开销和访问复杂度最佳实践显式使用作用域运算符解决命名冲突(B::aC::a避免深层次的虚继承嵌套结合虚函数使用时需注意vptr的分布。原创 2025-03-13 07:00:00 · 357 阅读 · 0 评论 -
C++ 迭代器与常用算法
迭代器失效:在修改容器时(如erase),注意迭代器可能失效。算法选择需要稳定性 →部分排序 →性能考虑sort对小数据量使用插入排序,大数据量使用快速排序remove系列算法只逻辑删除,需配合eraseC++11+优化优先使用Lambda表达式替代函数对象使用auto简化迭代器声明。原创 2025-03-13 07:00:00 · 540 阅读 · 0 评论 -
C++ 练习9
【代码】C++ 练习9。原创 2025-03-12 07:00:00 · 190 阅读 · 0 评论 -
C++ STL
标准模板库(Standard Template Library),提供高效的数据结构和算法实现特点。原创 2025-03-12 07:00:00 · 1540 阅读 · 0 评论 -
C++ 练习8
A、类中的成员默认是private的,但是可以声明public,private 和protected,结构中定义的成员默认的都是public;B、char*(*p)(int)声明了一个参数为int的函数指针,它的返回值是char类型。16.使用关键字class定义的类中缺省的访问权限是私有(private)的 √。后,程序的输出结果是(B)1.对于C++中类(class)与结构(struct)的描述正确的为(A)10.下面堆(Heap)与栈(Stack)的差别,叙述错误的是(D)原创 2025-03-11 15:59:48 · 427 阅读 · 0 评论 -
C++ 值引用
通过移动语义减少不必要的拷贝,提升性能。适用场景实现高性能的移动构造函数和移动赋值运算符。配合标准库容器(如。原创 2025-03-12 07:00:00 · 329 阅读 · 0 评论 -
C++11 核心特性
【代码】C++11 核心特性。原创 2025-03-11 08:34:35 · 573 阅读 · 0 评论 -
C++ 文件操作
【代码】C++ 文件操作。原创 2025-03-11 07:00:00 · 809 阅读 · 0 评论 -
C++ 命名空间
cpp// 变量// 函数// 类// 枚举cpp// 定义变量。原创 2025-03-08 07:00:00 · 257 阅读 · 0 评论 -
C++ 异常处理
cpppublic:return "自定义异常说明";// 使用示例try {原创 2025-03-08 07:00:00 · 501 阅读 · 0 评论 -
C++ 练习7
totalArea函数接收一个Shape指针数组和数组长度作为参数,遍历数组中的每个Shape指针,并累加它们的面积,最后返回总面积。抽象基类Shape定义了纯虚函数area(),任何继承自Shape的类都必须实现这个函数,这样确保了每个形状类都有计算面积的方法。在main函数中,创建了一个Shape指针数组shapes,存放了一些Shape的派生类实例,计算它们的总面积并输出。这段代码定义了一个模板函数 getTypeSize,该函数接受一个模板参数 T,并返回参数类型 T 的大小。原创 2025-03-07 07:00:00 · 387 阅读 · 0 评论 -
C++ 泛型编程
cpp返回类型 MyClass<T1,T2>::函数名(参数列表) {// 函数体。原创 2025-03-07 07:00:00 · 576 阅读 · 0 评论 -
C++ 多态 虚函数
cpppublic:// 虚函数声明cpp。原创 2025-03-07 07:00:00 · 420 阅读 · 0 评论 -
C++ 练习6
1)设计一个班级类,班级类中有班级学生的所有数学成绩和班级名称1.实现两个班级对象能够相加---- - 就是将两个班级的总成绩统计出来返回2.两个班级对象支持> 比较 (提示按照总成绩进行比较)3.支持对指定的班级对象上给每个人增加一个固定分数并进行返回。4.支持直接通过cout能够打印班级对象 (班级名称和班级的所有成绩)5.能够实现多个班级对象连续相加。原创 2025-03-06 09:08:39 · 942 阅读 · 0 评论 -
C++ 运算符重载
双目运算符至少一个操作数为用户定义类型。:流运算符应返回引用以支持链式调用。:涉及动态内存的类需重载赋值运算符。将类类型显式转换为其他类型,通过。:可能导致非预期行为,建议使用。:区分前/后置形式,后置需用。禁止隐式转换,避免意外行为)保持运算符原始语义(如。部分运算符不可重载(如。原创 2025-03-06 08:50:20 · 329 阅读 · 0 评论 -
C++ 二义性
虚继承:解决菱形继承问题(如多个父类继承同一基类),通过virtual关键字实现共享基类实例初始化列表:组合对象若无默认构造函数,必须通过初始化列表初始化多态限制:无虚函数时,基类指针/引用只能访问基类成员(示例中name字段未体现多态)原创 2025-03-06 08:29:35 · 479 阅读 · 0 评论 -
C++ 继承
【代码】C++ 继承。原创 2025-03-05 05:00:00 · 560 阅读 · 0 评论 -
C++ 练习5
虚函数机制:使用override关键字确保正确重写,运行时多态通过基类指针实现。建议结合具体需求扩展数据验证(如性别输入校验)、异常处理等机制,使程序更健壮。访问控制:基类成员设为protected便于派生类访问,遵循开闭原则。输入输出设计:保持基类接口统一,派生类扩展功能时先调用基类方法。内存管理:示例中使用new创建对象,实际应用应使用智能指针。代码复用:通过继承避免重复定义公共属性,符合DRY原则。原创 2025-03-05 07:00:00 · 232 阅读 · 0 评论 -
C++ 阶段总结
cppclass 类名 {访问修饰符:// 数据成员数据类型 成员名;// 函数成员返回类型 函数名(参数列表);原创 2025-03-05 07:00:00 · 398 阅读 · 0 评论 -
C++ 练习4
四、设计一个学生成绩管理系统, 每个学生有姓名和三个科目的成绩,实现学生信息添加,信息查询,求每个学生平均分,求学生各科的平均分。:实现按总分或单科成绩排序,并统计分数段(如90-100、80-89等),参考网页9的分数段统计逻辑。B)如果函数fun0被说明为类A的友元,那么在fun0中可以访问类A的私有成员。D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数。D.函数名相同,函数的返回值不同,而与函数的参数和类型无关。A)如果类A是类B的友元,那么类B也是类A的友元。原创 2025-03-04 08:47:28 · 717 阅读 · 0 评论 -
C++ 友元机制 成员函数指针
声明为。原创 2025-03-04 08:43:19 · 573 阅读 · 0 评论 -
C++ 静态成员 深浅拷贝
默认拷贝构造函数/赋值运算符仅复制指针地址,导致多个对象指向同一堆内存(代码中。)在对象销毁时自动调用,用于释放堆内存资源(如代码中的。用于初始化对象成员变量,在对象创建时自动调用。初始化位置:静态成员必须在类外全局作用域初始化(如。),不能调用非静态成员函数或访问非静态成员变量。线程安全:多线程环境下修改静态成员需加锁(如。适用场景:类包含指向堆内存的指针成员(如。):推荐替代裸指针,自动管理内存生命周期。避免析构时多次释放同一内存(如代码中。指针,只能访问静态成员(如。分配堆内存,析构函数中。原创 2025-03-04 08:36:22 · 348 阅读 · 0 评论 -
C++ new/delete 与常成员函数
但自定义类型必须严格匹配,否则导致析构遗漏。仅分配/释放内存,不处理对象构造与析构。,处理类特定内存逻辑(如记录分配次数)分配连续内存并调用每个元素的构造函数,基类虚析构:若基类无虚析构函数,分配内存后自动调用构造函数,内存泄漏预防:释放后指针应置。是 C++ 的运算符,而。派生类对象时可能传递错误。释放内存前调用析构函数。失败默认抛异常,可用。安全,无需额外检查。原创 2025-03-01 07:00:00 · 1013 阅读 · 0 评论 -
C++ this指针和拷贝构造函数
thisthis指针:本质是对象地址的隐式传递,用于操作成员变量、支持链式调用。拷贝构造函数:核心在于资源管理,区分浅/深拷贝是避免内存问题的关键。this指针在拷贝构造函数中用于区分当前对象与源对象成员,尤其在深拷贝时需显式访问源对象数据(如other.data。应用场景this:方法链、运算符重载、返回自引用。拷贝构造:对象复制、容器存储对象、多态基类克隆(需虚拷贝构造函数)。通过结合this指针与拷贝构造函数,可编写出安全、高效的C++面向对象程序。原创 2025-03-01 07:00:00 · 361 阅读 · 0 评论 -
C++ 练习3
以下是根据题目要求编写的C++代码及注释,结合了面向对象编程、模板、异常处理、文件操作等核心知识点,并参考了相关技术文档。原创 2025-03-01 07:00:00 · 188 阅读 · 0 评论 -
C++ 练习2
用类实现计算器,支持两个数的加、减、乘、除,使用多态或抽象类设计。对象的信息写入文本文件。原创 2025-02-27 19:56:45 · 532 阅读 · 0 评论 -
C++ 构造函数与析构函数
作用:初始化对象,在对象创建时自动调用,用于分配资源、设置初始值。特性用途关键点默认构造函数无参初始化对象可自动生成,但若定义其他构造需显式声明拷贝构造函数深拷贝动态资源避免浅拷贝导致重复释放移动构造函数高效转移资源(C++11)使用std::move触发析构函数释放资源(内存、文件等)虚析构函数确保多态安全explicit禁止隐式类型转换防止意外构造初始化列表高效初始化成员必须用于const或引用成员最佳实践优先使用初始化列表。多态基类必须声明虚析构函数。原创 2025-02-28 07:00:00 · 1840 阅读 · 0 评论 -
C++ 类与对象
面向对象三大特性封装:通过访问控制隐藏实现细节。继承:代码复用与扩展(用户需补充派生类相关内容)。多态:虚函数实现接口统一。最佳实践优先使用初始化列表。管理动态内存时实现深拷贝。使用override明确虚函数重写。通过深入理解类与对象的机制,可以设计出高效、可维护的面向对象程序。原创 2025-02-28 07:00:00 · 443 阅读 · 0 评论 -
C++ 练习1
利用今天学习的函数模板,设计一个排序算法函数,实现对任意类型的数据实现排序。C++编写一个可以容纳任意数据类型的链表.。原创 2025-02-25 20:04:21 · 442 阅读 · 0 评论 -
C++ 内联函数 函数重载
内联函数是C++性能优化工具箱中的双刃剑:正确使用时可提升5%-15%关键路径性能,滥用则导致代码膨胀和缓存失效。建议结合现代编译器的诊断工具(如GCC的-Winline),在性能需求与代码可维护性之间寻找平衡点。对于高频调用的微操作,内联仍然是无可替代的底层优化手段。函数重载是C++实现静态多态性的核心机制,通过灵活的参数匹配提升代码可读性和接口简洁性。合理使用时需注意避免歧义调用,并理解编译器匹配规则。原创 2025-02-26 07:00:00 · 752 阅读 · 0 评论 -
C++ 字符串 结构体 联合体 引用
cpp。原创 2025-02-27 07:00:00 · 728 阅读 · 0 评论 -
C++ 面向对象 引用返回值
,函数结束后局部变量销毁,返回的引用将指向无效内存(悬空引用),导致未定义行为。引用作为函数返回值时,实际上是返回变量本身的别名,而非值的拷贝。:将数据(属性)和操作数据的方法(行为)封装为类,通过访问控制(),允许直接修改实参并返回其别名,常用于链式操作或状态更新。:编译器为含虚函数的类生成虚函数表,实现运行时动态绑定。开闭原则:通过继承扩展功能,而非修改现有代码(如新增。单一职责原则:类应专注于单一功能(如。:若返回局部非静态变量(如。:通过引用参数返回结果(如。作用:增强安全性(如。原创 2025-02-27 07:00:00 · 1058 阅读 · 0 评论 -
C++ 函数模板 默认参数
C++模板函数通过泛型编程极大提升了代码复用性和灵活性。掌握基础语法、特化、类型推导、可变参数及现代C++特性(如Concepts)是高效使用模板的关键。合理应用模板可优化代码结构,但需注意编译开销和可维护性,适时选择模板元编程或constexpr函数。原创 2025-02-26 07:00:00 · 1378 阅读 · 0 评论 -
C++数据类型运算符输入输出
类类型支持封装、继承、多态特性包含成员变量与方法,如模板类型泛型编程基础,如支持类型参数化,提升代码复用性。原创 2025-02-25 07:00:00 · 1186 阅读 · 0 评论 -
C++特点
C++ 凭借其高效性多范式支持和底层控制能力,成为系统开发和高性能计算的首选语言。尽管存在复杂性挑战,但其在游戏、嵌入式、科学计算等领域的不可替代性,使其持续占据编程语言前沿地位。C++ 的核心优势在于性能硬件控制和跨平台能力,使其在游戏、系统开发、实时计算等对效率要求极高的领域不可替代。随着 C++20/23 新标准的演进,其在并发编程、模块化等现代场景中的竞争力持续增强。如需进一步了解具体领域的技术细节或案例,可参考上述文献中的完整内容。原创 2025-02-25 07:00:00 · 972 阅读 · 0 评论