C++
文章平均质量分 80
zzu_ljk
在校大学生
展开
-
【C++】多态
多态是指不同继承关系的类对象,去调用同一函数,产生了不同的行为。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写。在虚函数的后面写上 =0,则这个函数为纯需函数,包含纯需函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。派生类继承抽象类之后也不能实例化出对象,只有重写纯需函数,派生类才能实例化出对象。抽象类既然不能实例化出对象,那抽象类存在的意义是什么?抽象类可以更好的去表示现实世界中,没有实例对象对应的抽象类型,比如:植物、人、动物等。原创 2023-10-30 19:50:12 · 210 阅读 · 0 评论 -
【C++】文件IO流
C++流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从计算机内部向外部输出设备(如显示器)输出的过程。“流”是流动的意思,是物质从一处向另一处流动的过程,是对一种有序连续且有方向性的数据的抽象描述。注意: 可以在定义文件流对象的同时指定将要打开的文件名,以及文件的打开方式。使用 >> 和 << 运算符对文件进行读写操作,会变得很简单,也很形象。3、使用提取和插入运算符对文件进行读写,或使用成员函数进行读写。以二进制的形式对文件进行写入操作。以二进制的形式对文件进行读取操作。原创 2023-09-19 17:32:47 · 59 阅读 · 0 评论 -
【C++11新特性】function包装器
function包装器是一种函数包装器,也叫做适配器。它可以对可调用对象进行包装,C++中的function本质就是一个类模板。Ret:被包装的可调用对象的返回值类型。Args…:被包装的课调用对象的形参类型。包装示例function包装器可以对可调用对象进行包装,包括函数指针(函数名)、仿函数(函数对象)、lambda表达式、类的成员函数。public:class Pluspublic:int main()// 1、包装函数指针(函数名)原创 2023-09-12 20:21:55 · 109 阅读 · 0 评论 -
【C++】继承
继承的概念继承机制是面向对象程序设计使代码可以复用的重要手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,而继承便是类设计层次的复用。例如,以下代码中Student类和Teacher类就继承了Person类。// 父类public:protected:string _name = "张三";// 子类protected:int _stuid;原创 2023-09-01 17:22:01 · 180 阅读 · 0 评论 -
【C++11新特性】可变参数模板
模板参数Args前面有省略号,代表它是一个可变参数模板,我们把带省略号的参数称为参数包,参数包里面可以包含0到N(N>=0)个模板参数,而args则是一个函数形参参数包。模板参数包Args和函数形参参数包args的名字可以任意指定。现在调用ShowList函数时就可以传入任意多个参数了,并且这些参数可以是不同类型的。我们可以在函数模板中通过sizeof计算参数包中参数的个数但是我们无法直接获取参数包中的每个参数,只能通过展开参数包的方式获取,这是使用可变参数模板的一个主要特点,也是最大的难点。原创 2023-08-27 15:47:20 · 179 阅读 · 0 评论 -
【C++11新特性】lambda表达式
的方式捕捉变量时,编译器也不一定会把父作用域所有的变量捕获进来,编译器可能只会对lambda表达式中用到的变量进行捕获,没有必要把用不到的变量也捕获进来,这个主要看编译器的具体实现。这样一来,调用lambda表达式时就不用传入参数了,但实际我们只需要用到变量a和变量b,没有必要把父作用域中的所有变量都进行捕捉,因此也可以只对父作用域中的a、b变量进行捕捉。但由于这里是传值捕捉,lambda函数中对a和b的修改不会影响外面的a、b变量,与函数的传值传参是一个道理,因此这种方法无法完成两个数的交换。原创 2023-08-19 20:42:07 · 128 阅读 · 0 评论 -
【C++11新特性】右值引用和移动语义
为了更好地解决问题,这里需要借助一个深拷贝的类,下面模拟实现了一个简化版的string类。右值引用和万能引用的区别就是,右值引用需要的是确定的类型,而万能引用是根据传入实参的类型进行推导,如果传入的实参是一个左值,那么这里的形参t就是左值引用,如果传入的实参是一个右值,那么这里的形参t就是右值引用。移动赋值是一个赋值运算符重载函数,该函数的参数是右值引用类型的,移动赋值也是将传入右值的资源窃取过来,占为己有,这样就避免了深拷贝,所以它叫移动赋值,就是窃取别人的资源来为自己赋值的意思。原创 2023-08-18 15:51:45 · 91 阅读 · 0 评论 -
[C++] -- 模板初阶
C++模板初阶原创 2023-02-09 21:08:49 · 448 阅读 · 0 评论 -
C++内存管理
C++的内存管理原创 2023-02-08 20:44:10 · 61 阅读 · 0 评论 -
C++的类与对象
C++类与对象的讲解原创 2023-02-08 14:42:44 · 312 阅读 · 0 评论 -
为什么内联函数声明和定义分离在不同文件中会报错?
内联函数为什么不能声明和定义分离?原创 2023-02-06 17:36:01 · 718 阅读 · 1 评论 -
c++ 基础(新手入门必看)
当函数的参数中有多个参数具有缺省值时,则有不同的传参方法。并且,传参是连续的,必须从左到右传参,不能只给c传参而不给a和b传参。注意,函数的声明和定义中不能同时出现缺省参数,防止出现声明和定义中缺省参数不一样的尴尬局面。如果函数同时有声明和定义的话,要把缺省参数放在声明中。原创 2023-02-06 11:48:23 · 1238 阅读 · 7 评论