
C++
文章平均质量分 82
hardStudy_h
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++——模版(函数模版和类模版)
模板是 C++ 中一种强大的泛型编程机制,允许开发者编写与类型无关的代码,从而提高代码的复用性和灵活性。通过模板,可以避免为不同数据类型重复编写相似的函数或类,实现真正的代码复用。原创 2025-07-15 20:12:03 · 361 阅读 · 0 评论 -
C++——多态
多态是C++面向对象编程的核心特性,它通过虚函数和继承实现“一个接口,多种实现”的灵活机制。合理使用多态可以提高代码的复用性、扩展性和可维护性,是编写高质量C++程序的关键。核心概念virtual关键字实现动态绑定。= 0强制派生类实现,形成抽象类。虚函数表:底层机制,支持运行时多态。应用场景:框架设计、插件系统、图形界面等需要灵活扩展的场景。原创 2025-07-13 15:12:20 · 845 阅读 · 0 评论 -
C++——多重继承/虚继承/菱形继承
多重继承是C++中一种强大但复杂的特性,它允许类从多个基类继承属性和方法。然而,多重继承也带来了二义性和菱形继承等问题,需要通过作用域解析运算符、重写成员函数或虚继承来解决。原创 2025-07-12 16:11:04 · 1069 阅读 · 0 评论 -
C++——继承及权限/基类构造函数/虚函数
当创建派生类的对象时,基类的构造函数总是在派生类的构造函数之前被调用。这个表格提供了一个快速参考,帮助理解在不同类型的继承中基类成员的访问级别是如何变化的。当 Roadsetr类的对象被创建时,首先调用 Base 类的构造函数,然后调用 Roadsetr类的构造函数。关键字有助于清晰地表达程序员的意图,并利用编译器检查来避免常见的错误,如签名不匹配导致的非预期的函数重写。中,派生类可以通过其构造函数的初始化列表来调用基类的构造函数。:当通过基类的指针或引用调用一个虚函数时,调用的是对象实际类型的函数版本。原创 2025-07-12 14:52:55 · 900 阅读 · 0 评论 -
C++——静态数据成员和静态成员函数
计数器:统计创建了多少个对象public:常量定义:全类通用的常量值public:工具方法:与对象无关的功能public:单例模式:确保只有一个实例public:if (!原创 2025-07-12 10:57:40 · 368 阅读 · 0 评论 -
C++——拷贝构造函数详析
在所有这些情况下,如果类包含资源管理(例如,动态内存分配),那么正确地实现拷贝构造函数是非常重要的,以确保资源的正确复制和管理,防止潜在的内存泄漏或其他问题。这样做的目的是防止类的对象被拷贝,从而避免可能导致的问题,如资源重复释放、无意义的资源复制等。引入了移动语义,允许资源(如动态分配的内存)的所有权从一个对象转移到另一个对象,这避免了不必要的拷贝。通过这些方法,你可以确保你的类的对象不会被意外地拷贝,从而避免可能出现的资源管理相关的错误。中的一种特殊的构造函数,用于创建一个新对象作为现有对象的副本。原创 2025-07-11 22:52:02 · 1147 阅读 · 0 评论 -
C++——析构函数
析构函数特别重要,尤其是在涉及动态分配的资源(如内存、文件句柄、网络连接等)的情。智能指针和其他自动资源管理技术时,可以减少显式编写析构函数的需要,但了解析构函数的工作原理。中的一个特殊的成员函数,它在对象生命周期结束时被自动调用,用于执行对象销毁前的。:当对象的生命周期结束时(例如,一个局部对象的作用域结束,或者使用。编程实践中,确保资源在对象析构时被适当释放是非常关键的。删除 一个动态分配的对象),析构函数会被自动调用。的析构函数被自动调用,负责清理资源,防止内存泄露。期结束时(即离开了它的作用域),原创 2025-07-11 20:14:14 · 179 阅读 · 0 评论 -
C++——this关键字和new关键字
thisnew特性this关键字new运算符作用指向当前对象动态分配内存返回值当前对象的指针新分配内存的指针使用场景成员函数中访问当前对象需要运行时决定内存分配时内存位置不适用(是指针)堆(heap)生命周期不适用直到显式delete或程序结束错误风险误用可能导致逻辑错误忘记释放导致内存泄漏。原创 2025-07-11 17:28:49 · 704 阅读 · 0 评论 -
C++——构造函数
初始化对象成员变量分配资源(如内存、文件句柄等)执行必要的设置操作。原创 2025-07-11 13:13:12 · 376 阅读 · 0 评论 -
C++——函数重载与运算符重载
函数,只要它们的参数列表不同(参数类型、参数个数或参数顺序不同)即可。编译器会根据调用时提供的参数自动选择最匹配的函数版本。编译器会将函数名与参数类型信息组合成一个唯一的内部名称,使得不同版本的重载函数在编译后具有不同的名称。运算符重载允许为类或结构体类型重新定义C++内置运算符的行为,使它们能够用于用户定义的类型。函数重载是指在同一作用域内,可以定义多个同名。原创 2025-07-10 12:36:02 · 643 阅读 · 0 评论 -
C++——引用
引用是已存在对象的别名,通过int x = 10;// ref是x的引用引用关键特性必须初始化:引用在声明时必须初始化不可重新绑定:一旦绑定到某个对象,就不能再绑定到其他对象无空引用:引用必须指向有效对象(与指针不同)自动解引用:使用引用时不需要特殊语法,就像使用原变量一样。原创 2025-07-10 10:51:38 · 257 阅读 · 0 评论 -
C++——从结构体到类与对象
C++ 的面向对象编程(OOP)核心是和。类是用户自定义的数据类型,用于封装数据(属性)和操作数据的方法(行为);对象则是类的实例。本文将从引入,逐步深入讲解 C++ 的类和对象,结合代码和详细说明。在 C 语言中,结构体(struct数据完全公开,无法控制访问权限操作数据的行为(函数)与数据本身分离(结构体仅包含数据,操作需额外函数实现)缺乏数据保护机制,容易导致非法修改C++ 保留了struct,但允许在结构体内定义函数(方法),并支持访问控制(publicprivatestructpublic。原创 2025-07-09 13:10:10 · 743 阅读 · 0 评论 -
C++——内联函数与Lambda表达式
捕获方式语法描述值捕获[x]创建x的副本,lambda内不能修改原变量引用捕获[&x]通过引用捕获x,lambda内修改会影响原变量隐式值捕获[=]所有外部变量都通过值捕获隐式引用捕获[&]所有外部变量都通过引用捕获混合捕获[=, &x]除x外所有变量值捕获,x引用捕获隐式混合捕获[&, x]除x外所有变量引用捕获,x值捕获this指针捕获[this]捕获当前类的this指针,可以访问成员变量和函数初始化捕获(C++14)[x = expr]用expr初始化x(可以是移动捕获)原创 2025-07-08 18:52:39 · 935 阅读 · 0 评论 -
C++——数据类型与输入输出
C++的标准输入输出系统是基于流(stream)的概念构建的,提供了类型安全、可扩展的I/O操作方式。与C语言的相比,C++的I/O系统通过运算符重载和面向对象的方式,提供了更灵活、更安全的输入输出机制。C++预定义了四个标准流对象,都定义在std对象类型对应C标准流缓冲情况典型用途cinistreamstdin有缓冲标准输入coutostreamstdout有缓冲标准输出cerrostreamstderr无缓冲错误输出(立即显示)clogostreamstderr。原创 2025-07-08 16:13:03 · 775 阅读 · 0 评论 -
C++——命名空间
命名空间(Namespace)是C++提供的一种机制,用于将全局作用域划分为不同的命名区域,解决名称冲突问题。它是C++对C语言中全局命名空间污染问题的解决方案。int value;原创 2025-07-08 15:14:43 · 362 阅读 · 0 评论 -
C++——从C到C++
封装:访问控制(public/private/protected)多态:虚函数、override、final。继承:单继承、多继承、虚继承。原创 2025-07-08 14:24:05 · 895 阅读 · 0 评论