![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 67
谢谢我现在很bug
这个作者很懒,什么都没留下…
展开
-
STL初识
it!//set容器插入之后就不能在修改,所以只能在插入之前指定规则 set < int , myCompareInt > s;//仿函数,不能用回调函数,因为括号里需要一个类型 s . insert(10);it!return 0;} };原创 2023-06-03 19:32:41 · 145 阅读 · 4 评论 -
C++异常
catch(MyException *e)对象会提前释放掉,不能在非法操作,如果不想被提前释放掉,则throw new MyException(),但是要自己delete。异常处理就是处理程序中的错误.所谓错误是指在程序运行的过程中发生的一些异常事件(如0溢出,数组下标越界,所要读取的文件不存在,空指针,内存不足等)从try代码块开始,到throw抛出异常之前,所有栈上的数据都会被释放掉,释放的顺序和创建顺序相反,这个过程为栈解旋。异常接口声明将严格的告诉你抛出的异常的数据类型。利用throw抛出异常。原创 2023-05-27 21:32:44 · 149 阅读 · 8 评论 -
C++运算符new|delete|关键字explicit
由此看出,在堆区开辟数组,一定会调用默认构造函数,所以!当写了有参构造函数,编译器不会提供默认构造函数,此时若没有写默认构造函数,则无法在堆区开辟空间!总之,在函数可能发生隐式类型转换时带上explicit关键字可以帮助编译器更严格的检查你的代码,提高代码的可读性。new在堆区开辟一块内存,并返回一个指针来接收这个内存,堆区开辟的内存手动开辟手动释放,自动初始化并调用构造函数。所以,在c++中有一种更简单的在堆上分配内存的新方法,就是使用。malloc不会调用构造函数,new会调用构造函数。原创 2023-04-24 00:27:51 · 90 阅读 · 0 评论 -
智能指针管理new出来的对象的释放操作
在c++中,我们可能会new出来非常多的对象,这些对象开辟在堆区需要手动用delete释放内存,就像下面这段代码。保证调用了new之后一定会调用delete(相当于将new和delete做一个捆绑)这只体现出智能,并没有体现出。实现了Person的析构调用!这时候的结果就完全没问题了。思路有了,解决方案是。原创 2023-05-03 15:31:51 · 690 阅读 · 0 评论 -
数组类的封装
对数组类的封装主要实现以下几个简单的功能分文件编写是一个好习惯o。原创 2023-05-18 16:38:41 · 203 阅读 · 0 评论 -
C++类模板
通俗来说,类模板是一种通用的类定义,它可以使用任何数据类型作为其成员的类型。在使用类模板时,需要将其中的占位符类型T替换为实际的数据类型。这样可以让我们编写一份通用的代码来处理不同类型的数据,而不必为每种数据类型都编写一份不同的代码。当我们需要处理不同类型的数据时,可以通过使用类模板来避免编写大量的类定义。它允许我们定义一种通用的数据类型,而不需要指定实际使用的数据类型,这种数据类型可以用于任何数据类型。类模板允许我们写出一个类的通用定义,该类可以使用任何数据类型作为其数据成员的类型。原创 2023-04-24 21:41:16 · 66 阅读 · 0 评论 -
运算符重载
运算符重载:对已经有的运算符重新定义,赋予另一种功能,以适应不同的数据类型operator 是 C++ 的一个关键字,它和运算符(如 =)一起使用,表示一个运算符重载函数,在理解时可将 operator和待重载的运算符整体(如 operator=)视为一个函数名。使用 operator 重载运算符,是 C++ 扩展运算符功能的方法。使重载后的运算符的使用方法与重载前一致;扩展运算符的功能只能通过函数的方式实现。(实际上,C++ 中各种“功能”都是通过函数实现的)原创 2023-04-26 19:40:11 · 62 阅读 · 0 评论 -
C++类型转换
用于类层次结构中基类(父类)和派生类(子类)之间指针和引用的转换用于基本数据类型之间的转换,如把int转成char,把char转成int,这种转换的安全性也要开发人员来保证。原创 2023-05-24 19:53:43 · 85 阅读 · 0 评论