自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深拷贝和浅拷贝

为什么会发生崩溃,我们来分析一下,首先我们的对象a实例化时会调用含参构造函数进行初始化,初始化过程中会向堆区申请空间,并且指针变量ptr还会指向申请的空间,接着我们创建b、对象并且调用默认的拷贝构造函数对b进行初始化此时会发生下面的情况。:浅拷贝就是编译器实现的直接等号复制操作,深拷贝重新申请一块空间,进行拷贝操作,所以如果对象中有属性在堆区中开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题。默认的拷贝构造函数中会对对象中的变量进行简单的赋值拷贝操作,就是调用等号进行赋值,这就是浅拷贝。

2023-07-24 11:08:42 101

原创 构造函数对成员变量的初始化

最终会发现这个程序结果中a的值是一个随机值,程序并没有按照初始化列表当中那样,先初始化变量b然后用变量b的值去初始化a,而是先对a进行初始化,然后再对b进行初始化,也就是说正真的初始化顺序时按照类当中变量声明的顺序进行的,与初始化列表无关。之前我们了解到c++类当中有多个默认成员函数,其中构造函数跟析构函数是会在类实例化对象时自动调用,构造函数会对类成员变量进行初始化,析构函数会对对象的内存空间进行释放,防止出现内存泄漏等问题。例如:a(12),b(a)用初始化后的a变量来初始化b。构造函数名(参数列表…

2023-07-24 09:15:01 673

原创 C++运算符重载

运算符重载是运算符重载函数对运算符进行重载的,函数名有一个固定的模式(operator+运算符);运算符重载函数:返回类型 operator 运算符(形参列表)。运算符可以被重载成全局函数,也可以被重载成成员函数。一般更倾向于重载成成员函数。下面我们举几个简单的例子:定义一个简单的坐标类,首先我们先来实现赋值运算符=的重载,当我们实例化出来一个对象,接着想把当前对象赋值给一个新的对象。接着我们来实现+=运算符的重载。下面是-=运算符的重载。实现*=运算符的重载。

2023-04-03 01:42:08 140

原创 C++构造函数与析构函数

我们先来了解一下构造函数,构造函数是特殊的成员函数,构造函数的主要任务是完成类成员变量的初始化工作。

2023-03-20 23:07:07 80

原创 C++this指针

C++中通过引入this指针解决该问题,即:C++编译器给每个“非静态的成员函数“增加了一个隐藏 的指针参数,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量” 的操作,都是通过该指针去访问。只不过所有的操作对用户是透明的,即用户不需要来传递,编译器自动完成。

2023-03-18 16:00:03 138

原创 c++知识点总结(部分)

在c++当中就很好的修改了这一点,c++对于函数名的修饰不单单与参数有关,而且还跟参数的数量,参数类型,以及参数类型的顺序相关联,所以说相同名字的函数在调用时会根据参数的不同从而实现函数的调用不同,所以c++允许在同一作用域当中定义参数类型不同名字相同的函数。在c/c++当中要命名大量的变量,函数,以及c++当中的类名,这些变量,函数和类的名称都将存在全局作用域当中,当命名的变量函数太多的时候,可能会导致很多冲突。我们这里创建了一个名称为N的命名空间,我们可以看到命名空间当中可以定义变量,函数,结构体。

2023-03-12 12:25:32 93

原创 再读C语言----诡异离奇,陷阱重重

再读C语言受益匪浅,C语言相关难点以及经常忽视的简单问题。

2023-03-06 15:45:51 47

原创 树与二叉树

树与二叉树是数据结构当中重要的一中非线性结构,并且相对来说是比较重要的一种数据结构。

2022-11-23 02:57:14 443 1

原创 C语言指针专题(初级)

引用《c和指针》这本书上的一句话“正是指针使C语言威力无穷。有些任务用其他语言也可以实现,但C语言能够更加有效地实现;有些任务无法用其它语言实现,如直接访问硬件,但C语言却可以;”

2022-11-19 12:53:18 453

原创 C语言实现顺序表的存储

线性表当中的顺序存储类似于C语言当中的数组,也可以将数组叫做特殊的线性表。

2022-11-18 22:37:35 691

原创 快速排序算法(图解+代码)

快速排序是效率最高的排序算法,它的基本思想是分治法,也是一种交换类的排序算法。

2022-11-16 13:46:36 1384

原创 冒泡排序(详解+改进)

冒泡排序是基于交换的排序算法,是一种较简单的基础排序算法,下面介绍如何用C语言来实现冒泡排序。

2022-11-13 15:35:20 300

原创 C语言之---无符号数据类型与有符号数据类型

C语言当中有很多整型数据类型,它们的主要区别在于取值范围。同时C语言又将这些数据类型分为两大类unsigned(无符号类)和signed(有符号类)。C语言当中以unsigned关键字来定义无符号类型变量;例如: unsigned int a=10;上面这样就是简单定义了一个无符号变量,并且对它进行初始化为10。对于有符号变量我们可以省略signed直接写成int a=10;假如说我们把一个无符号类型的变量初始化成一个负数会发生什么情况?

2022-11-10 21:19:30 3052 1

空空如也

空空如也

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

TA关注的人

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