c++
文章平均质量分 59
码农小白
这个作者很懒,什么都没留下…
展开
-
qt学习:实战 记事本 + 快捷键 + 鼠标滚轮 + 打开读取写入关闭文件
在.h里public:QFile file;//文件描述符//增加当前字体大小函数//减小当前字体大小函数//在用户按下 Ctrl 键的同时滚动鼠标滚轮时,执行放大或缩小操作//槽函数//多选框变化后发出信号绑定槽函数来改变编码//编辑框的光标位置发生变化时发出信号绑定槽函数来改变对应有多少字符多少行。原创 2024-03-01 00:37:27 · 964 阅读 · 0 评论 -
c++学习:虚继承
虚继承是C++中一种特殊的继承方式,主要用来解决多重继承中的菱形继承问题。在菱形继承结构中,一 个类继承自两个具有共同基类的类时,会导致共同基类的成员在派生类中存在两份拷贝,这不仅会导致 资源浪费,还可能引起数据不一致的问题。虚继承通过确保共同基类的单一实例存在于继承层次中,来解决这一问题。原创 2024-02-29 20:59:23 · 189 阅读 · 0 评论 -
c++学习:多重继承
多重继承是一种允许一个类同时继承多个基类的特性。这意味着派生类可以继承多个基类的属 性和方法。多重继承增加了语言的灵活性,但同时也引入了额外的复杂性,特别是当多个基类具有相同 的成员时。在多重继承中,派生类继承了所有基类的特性。这包括成员变量和成员函数。如果不同的基类有相同名 称的成员,则必须明确指出所引用的是哪个基类的成员。Derived 类同时继承了 ClassA 和 ClassB。因此,它可以使用这两个类中定义的方法。原创 2024-02-29 20:55:30 · 192 阅读 · 0 评论 -
c++学习:虚函数
virtual 和 override 关键字用于支持多态,尤其是在涉及类继承和方法重写的情况下。正 确地理解和使用这两个关键字对于编写可维护和易于理解的面向对象代码至关重要。原创 2024-02-29 20:52:03 · 286 阅读 · 0 评论 -
c++学习:继承
继承是面向对象编程(OOP)中的一个核心概念,特别是在C++中。它允许一个类(称为派生类或子 类)继承另一个类(称为基类或父类)的属性和方法。继承的主要目的是实现代码重用,以及建立一种 类型之间的层次关系。原创 2024-02-29 16:30:03 · 1180 阅读 · 0 评论 -
c++学习:静态成员
何使用静态成员变量来计数一个类的实例数量。原创 2024-02-29 14:45:51 · 319 阅读 · 0 评论 -
c++学习:析构函数
析构函数是C++中的一个特殊的成员函数,它在对象生命周期结束时被自动调用,用于执行对象销毁前的清理工作。析构函数特别重要,尤其是在涉及动态分配的资源(如内存、文件句柄、网络连接等)的情况下。原创 2024-02-29 14:28:51 · 166 阅读 · 0 评论 -
c++学习:new关键字+delete关键字
new 关键字用于动态分配内存。它是C++中处理动态内存分配的主要工具之一,允许在程序运 行时根据需要分配内存。原创 2024-02-29 14:20:44 · 395 阅读 · 0 评论 -
c++学习:this关键字
this 关键字是一个指向调用对象的指针。它在成员函数内部使用,用于引用调用该函数的 对象。使用 this 可以明确指出成员函数正在操作的是哪个对象的数据成员。原创 2024-02-29 13:13:46 · 237 阅读 · 0 评论 -
c++学习:初始化列表
使用初始化列表来初始化类的字段是一种高效的初始化方式,尤其在构造函数中。初始化列表 直接在对象的构造过程中初始化成员变量,而不是先创建成员变量后再赋值。这对于提高性能尤其重 要,特别是在涉及到复杂对象或引用和常量成员的情况下。初始化列表紧跟在构造函数参数列表后面,以冒号( : )开始,后跟一个或多个初始化表达式,每个表 达式通常用逗号分隔。原创 2024-02-29 11:13:18 · 220 阅读 · 0 评论 -
c++学习:构造函数
类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行,每次都会构造成员变量的初始化值,内存空间等。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于 为某些成员变量设置初始值。原创 2024-02-29 10:40:12 · 939 阅读 · 0 评论 -
c++学习:重载
这种做法在设计类的时候是很有用的,因为它可以确保某些函数不 会意外地改变对象的状态,同时也使得这个函数可以在常量对象上被调用。= 等)在自定义类型(类或 结构体)上的行为的特性。在同一个作用域内,可以声明几个功能类似的同名函数, 这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。在这个例子中, operator+ 被重载为一个成员函数,接受一个 Point 类型的常量引用作为参数,并返 回两个点相加的结果。假设我们有一个简单的 Point 类,我们可以重载 + 运算符来实现两个点的加法。原创 2024-02-29 00:13:52 · 377 阅读 · 0 评论 -
c++学习:引用
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变在C语言中,一个数据对应一个内存,通过由一个变量名来访问这个内存空间的数据,叫做直接访问,相 对直接访问,有个间接访问的说法,叫做指针。而引用相当于又给这个内存中的数据提供了一个新的变量名。原创 2024-02-28 21:07:47 · 203 阅读 · 0 评论 -
c++学习:类
/声明成员数据void X();//声明成员函数private:int XX();//声明成员数据void XX();//声明成员函数protected:int XXX();//声明成员数据void XXX();//声明成员函数。原创 2024-02-28 20:41:33 · 252 阅读 · 0 评论 -
c++学习:字符串string类
C语言中对字符串的表示通常用指针,新手会面临内存泄漏或者段错误等众多问题。在 C++ 中, string 类是标准库的一部分,用于表示和操作字符串。它是对传统的 C 风格字符串(以空 字符 '\0' 结尾的字符数组)的一个更安全、更方便的封装。string 类是在 头文件中定义 的,并且位于 std 命名空间中。原创 2024-02-28 19:48:34 · 338 阅读 · 0 评论 -
c++学习:Lambda练习和数组练习
普通方法Lambda方法。原创 2024-02-28 19:36:47 · 137 阅读 · 0 评论 -
c++学习:数组
数组是一种存储固定大小的相同类型元素的序列。数组的所有元素都存储在连续的内存位置 上。这种数据结构非常适合于存储具有固定数量和相同数据类型的元素集合。原创 2024-02-08 20:00:46 · 237 阅读 · 1 评论 -
c++学习:内联函数+Lambda 表达式
使用一个函数来找出两个数中的较大数,这个函数将接受一个 lambda 函数 作为回调来比较这两个数。Lambda 函数将直接在函数调用时定义,完全是匿名的。其定义直接在每个调用点展开。这意味着编译器 会尝试将函数调用替换为函数本身的代码,这样可以减少函数调用的开销,尤其是在小型函数中。Lambda 表达式是 C++11 引入的一种匿名函数的方式,它允许你在需要函数的地方内联地定义函数,而 无需单独命名函数。原创 2024-02-08 19:51:15 · 585 阅读 · 0 评论 -
c++学习:climits头文件使用
这个头文件中定义了各种整型数据类型的属性,如最大值、最小值等可以使在不同的系统中都可以适用代码。原创 2024-02-07 20:16:49 · 528 阅读 · 0 评论 -
c++学习:基本变量类型+宽字符用法
数据类型 描述 大小(通常情况 下) 用途int 整型 至少 16 位 存储整数short int 短整型 至少 16 位 存储较小的整数。原创 2024-02-07 20:10:15 · 288 阅读 · 0 评论 -
c++学习:iostream输入输出+错误流+标准日志流
C++ 中的输入和输出(I/O)主要是通过标准库中的输入输出流来实现的。最常用的是 iostream 库,它 提供了用于输入和输出的基本流类,包括 cin 、 cout 、 cerr 和 clog。原创 2024-02-07 18:15:46 · 1237 阅读 · 0 评论 -
c++学习:命名空间
xxx为命令空间的名字,在括号里定义自己的变量或者函数或者常量。原创 2024-02-07 18:09:29 · 258 阅读 · 0 评论 -
c++学习:枚举循环(for的另一种写法)
等同于i按顺序等于a数组里的每一个数,让 i 遍历a数组里的所有元素,等同于python的用法。原创 2024-01-10 01:42:35 · 642 阅读 · 0 评论 -
c++学习:智能指针的底层作用原理+用法
如果分配了一个内存空间,但后面又忘记释放空间,会造成内存泄漏,智能指针就可以自动释放空间,避免内存泄漏。原创 2024-01-10 01:35:25 · 527 阅读 · 0 评论 -
c++学习:异常处理机制
全局错误标志 缺点当函数有多级嵌套的时候,要一层一层的进行返回值判断才能知道哪里错误 错误码不好设置 c++异常异常处理的核心思想是,把功能模块代码与系统中可能出现错误的处理代码分离开来,以此来达到使我们的代码组织起来更美观、逻辑上更清晰,并且同时从根本上来提高我们软件系统长时间稳定运行的可靠性。异常,即exception,是C++中的基本概念之一,在某段程序发生无法继续正常执行的情况时,C++允许程序进行所谓抛出异常(有时也被称为吐出异常)的行为,这些被抛出的异常,会自动地从触发点开原创 2024-01-10 00:23:10 · 809 阅读 · 0 评论 -
c++学习:隐式类型转换+explicit关键字+四种类型转换
目录隐式类型转换当定义一个字符串类想新建一个对象有下面几种方式但我不想用隐式类型转换得方式来新建,因为隐式转换成了分配若干字节的空字符串,容易令人误解,就要在构造函数前面用explicit关键字来修饰explicit关键字的用途是 防止隐式转换行为来初始化对象四种类型转换4种类型转换操作符 static_cast格式例子 int转换为charreinterpret_cast格式例子 把int*强转为char*dynamic_cast格式例子 新建一个基类和派生类,基类指针指向派生类对象,将基类指针还原原创 2024-01-09 15:12:32 · 380 阅读 · 0 评论 -
c++学习:文件输入输出类模板
类模板 basic_fstream 实现基于文件的流上的高层输入/输出。它将 std::basic_iostream 的高层接口赋予基于文件的缓冲(std::basic_filebuf)。类模板 basic_ofstream 实现文件上基于流的高层输出操作。它将 std::basic_ostream 的高层接口赋予基于文件的流缓冲(std::basic_filebuf)。它将 std::basic_istream 的高层接口赋予基于文件的流缓冲(std::basic_filebuf)。原创 2024-01-09 13:48:13 · 870 阅读 · 0 评论 -
c++学习:容器stack栈+queue+map(简易输入法)+deque
std::map 是一种有序关联容器,它包含具有唯一键的键值对。键之间以比较函数 Compare 排序。搜索、移除和插入操作拥有对数复杂度。map 通常实现为红黑树。std::queue 类是一种容器适配器,是队列——先进先出数据结构。std::stack 类是一种容器适配器,是栈——先进后出数据结构。原创 2024-01-09 01:39:52 · 700 阅读 · 0 评论 -
c++学习:容器list实战(获取目录返回容器list)
'.' &&=NULL)//获取文件名else{//存储到 链表容器中。原创 2024-01-09 00:35:18 · 1289 阅读 · 0 评论 -
c++学习:list链表模板类实战(学生管理系统)
是调用bool cmp(Student &a, Student &b)这个函数,cmp是一个函数对象,等于回调这个函数,函数必须要bool cmp(const Type1 &a, const Type2 &b)这种格式。擦除迭代器后就不能++了,所以要break,所以只能删除一个。在排序函数中if(a.age<b.age),是表示升序,>的话是降序。原创 2024-01-08 23:32:23 · 922 阅读 · 0 评论 -
c++学习:STL库(框架)+字符串模板类string+vector容器+list链表
int main()//实例化一个STL库中的字符串类模板的对象string s4;上面的s1,s2,s3,s4定义其实都是一样的,c++为了方便,将std::basic_string另起名为std::string。原创 2024-01-08 21:30:46 · 1484 阅读 · 0 评论 -
c++学习:类模板+万能版链表实战
实战 设计一个单向链表类模板 --万能版链表。如果还要比较其他不同数据的类,那需要很多个类。思考类模板能不能作为基类被继承。设计一个任意数据类型的数组模板。解决方法 创建类模板。原创 2024-01-04 00:29:17 · 576 阅读 · 0 评论 -
c++学习:函数模板+实战
其函数返回值数据类型 和 形参的数据类型 不具体指定,用一个虚拟的类型在代表。不断重写swap函数,太过麻烦。我们可以建立一个通用板的函数。原创 2024-01-04 00:02:12 · 409 阅读 · 0 评论 -
c++学习:运算符重载编写字符串类实战
如果我想用不同的方法创建类的对象:例如MString s0;//10代表的是数组的元素的个数//创建一个数据为hello的数组// 字符c 连续拷贝20个数组 cccccccccccccccccc代码public://数组是一个动态数组 ,按需分配//数组是一个动态数组 ,按需分配i原创 2023-12-29 01:57:45 · 412 阅读 · 0 评论 -
c++:new和delete的运算符重载
在重写new的时候要申请堆空间在重写delete的时候要释放堆空间。原创 2023-12-29 00:56:59 · 486 阅读 · 0 评论 -
c++学习:运算符重载
重载运算符限制在C++语言中已有的运算符范围内,并且允许重载的运算符之中,不能创建新的运算符。运算符重载实质上是函数重载,因此编译程序对运算符重载的选择,遵循函数重载的选择原则。重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及语法结构。运算符重载不能改变该运算符用于内部类型对象的含义。它只能和用户自定义类型的对象一起使用,或者用于用户自定义类型的对象和内部类型的对象混合使用时。原创 2023-12-28 00:47:18 · 833 阅读 · 0 评论 -
c++学习:友元关系+有元函数+友元类
友元关系友元关系是一种在编程中使用的术语,通常用于描述两个类或函数之间的特殊关系。 一个类可以将其他类或者函数声明为“友元”。被声明为友元的类或函数就可以访问该类的私有和保护成员。作用在这种关系中,一个类或函数允许另一个类或函数访问其私有和保护成员。这种关系并不依赖于继承,而是通过明确的声明来建立。友元函数示例有一个类,类中有一个数据成员,外面有两个函数,只想让一个函数可以访问这个数据成员class MyClass {private: int value;public原创 2023-12-25 20:03:03 · 403 阅读 · 0 评论 -
c++学习:const关键字
对象可以访问和读取其同样const成员数据,但不能修改它们。可以写入和读取非const的成员数据。只需要返回成员数据时就可以使用const来修饰函数,以免改动数据。的函数,因为这些函数可能会修改对象的状态。的函数,因为这些函数不会修改对象的状态。成员函数可能会修改对象的状态,违反了。对象不能调用其成员函数中未被声明为。对象只能调用其成员函数中被声明为。对象可以调用其成员函数中被声明为。对象是只读的,而调用非。原创 2023-12-25 17:24:02 · 336 阅读 · 0 评论 -
c++学习:封装DIR类获取目录下指定后缀的所有文件名
新建一个目录类,里面有一个获取指定目录下的所有指定后缀名文件的函数,然后赋值到一个二维数组里,并通过引用来把有多少个文件赋值到len里。这样子就不用每次查找目录下的文件时新建一个对象了,直接通过类来调用entryList来获取就好,方便很多。先创建一个dir.cpp,一个dir.h,一个main.cpp。在dir.cpp里放类的功能函数。再从main.cpp中调用。在dir,h里放类的定义。原创 2023-12-20 23:48:13 · 538 阅读 · 0 评论 -
c++学习:static在类中的空间分配+实战+单例设计模式
当A类中有一个static int NUM;那创建不同对象,是每个对象都有一个NUM空间呢,还是共用一个NUM空间。原创 2023-12-20 00:09:44 · 323 阅读 · 0 评论