自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 C++模板的具体实例:队列模板

由于在队列类Queue中,nVal存储的int类型内容可以变动为其他类型,所以将int用模板T1替换即可。如果我们用c++创建一个队列的类并实现队列的入队和出队功能,按照以往的方式,我们需要编译这一需求的代码。不仅函数可以使用模板,在一个自定义的类中同样可以使用模板。

2024-08-14 12:32:36 106

原创 C++模板的具体实例:冒泡排序模板

在Bubble函数中,数组参数a[ ]设置为int,为简化说明,数值长度在这里手动传参。只需要将arr数组存储的数据类型更改为模板即可灵活创建arr数组。如果想要将一个数组通过冒泡排序按照从小到大的顺序排列,可编译出如下代码。通过之前对于模板的介绍,我们可以对模板进行一些实际操作。然后只需要对这段代码进行修改即可。

2024-08-12 14:43:05 114

原创 C++中的重载

如上述代码,假设先定义出一个Num类,其中包括一个private权限的num和一个public权限的Num有参构造函数并在主函数中为创建的num1赋值,发现编译器并没有报错。并且进行断点调试后,num1的num的数值确实改变了。需要注意的是,如果在重载操作符中,本类的成员变量在操作符的左侧,该种操作符的重载函数应该在类内实现,具体如下。经过上述编译后,所得代码实现如下,只展示作为友元函数的重载。而类参数在重载操作符右侧的函数则推荐在类外结合友元来实现。4、->、 []、 =、 ()必须在类内重载。

2024-08-05 15:15:00 249

原创 C++中的友元

如下方代码中,先定义一个具有private访问权限的int类型变量alpha的Alpha类,在类中通过构造函数为alpha进行赋值,然后在类内声明一个友元函数然后在类外进行实现。上图中的代码中有一个非常明显的语法错误,就是在Show函数中想要调用通过Alpha类的引用,输出默认为private访问权限的alpha的数值,这显然是不和语法规定的。现在将Beta类设置为Alpha类的友元后,Beta类可以调用Alpha类的一切成员,但Alpha却不能调用Beta类中的成员。

2024-08-05 15:00:00 611

原创 C++的模板

虽然重载后的函数通过改变其形参列表可以达到调用不同函数的目的,每次调用一种新的函数时都要重新定义一个函数。针对这个问题,c++中采用了模板的方式解决,即只需要定义一次模板格式,当下次调用模板中的函数的时候,模板会自动检测并使用引入参数的类型。如上述代码中,设置的两个模板名,分别为T1和T2,这样额能够同时操作两个类型的变量并通过简单的输出二者相加的结果验证。这样的格式创建出一个叫T1的模板,这个模板在被Show调用的时候会自动根据被引入的数据类型调整,其结果如下所示。

2024-08-05 15:00:00 142

原创 C++中父类构造函数、析构函数与子类构造函数、析构函数的执行顺序

由于Gemini类为Zero类的子类,在调用Gemini的构造函数之前会自动创建一个Zero类的对象,其中包括了int类型的成员变量zero。假设现在有这样的两个类,一个叫Zero,另一个叫Gemini,二者关系如下,Zero类是Gemini类的父类,两个类中都包含构造和析构函数,Zero比Gemini多一个成员变量zero。类与类之间除了横向的组合、关联、依赖和聚合外,还有着纵向的【继承】关系,被继承的类被称作“父类”,继承了父类成员变量和方法的类则被称作子类。根据所显示类图,可以编译得到如下代码。

2024-07-30 15:43:08 687

原创 C++——类的虚继承

根据上述代码,可以看到,alpha的alpha值并没有成功输出并在开始编译后报错,其原因是Beta类和Charlie类在继承了Alpha类的成员变量后Beta和Charlie中都有Alpha的成员变量,导致编译器无法识别处所输出的数值为Beta的alpha还是Charlie的alpha。虽然在Alpha类的成员变量为alpha时,alpha占用的空间确实比非虚继承的alpha占用的空间多,但如果alpha作为一个大容量的成员变量,这种方法的优势就能显现出来。通过这种方式更改的代码输出的结果如下。

2024-07-30 15:08:40 773

原创 c++的浅拷贝和深拷贝

本文基于一段代码,借用类成员的成员函数在操作类对象的成员变量的变化来阐述深拷贝和浅拷贝在代码编译阶段产生的影响。

2024-07-29 17:08:53 313

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除