- 博客(7)
- 收藏
- 关注
原创 c++ 移动构造函数,移动赋值函数
move函数本质是可将一个左值转化为右值,或将一个右值转化为左值与强转函数类似但是,move函数无法消除const,即move无法对一个常性左值,或常性右值 ,进行类型转换给出示例:构建一个Int类,此处仅展示main函数部分。
2025-03-13 15:43:19
262
原创 c++中= 、+ 、前置++、后置++、输出<< 运算符重载
C++ 的 +、-、*、/ 等运算符只能用于对基本类型的常量或变量进行运算,不能用于对象之间的运算。利用 C++ 提供的“运算符重载”,赋予运算符新的功能,就能解决用+将两个对象相加这样的问题运算符重载基本格式:返回值类型 operator 运算符(形参表)...
2025-03-06 19:53:14
405
原创 C++拷贝构造函数
同一个类的对象在内存空间中具有完全相同的结构,可进行一个整体进行复制或拷贝,拷贝过程只需拷贝数据成员,成员函数是共用的。那么在调用拷贝构造函数时,会再次调用拷贝构造函数来复制参数,从而导致无限递归调用(程序进入调用拷贝构造函数的死循环)建立对象时,用同一个类的另一个对象来初始化该对象的存储空间,称之为~(3)构建一个对象的亡值(函数返回值是对象)3、为什么拷贝构造函数的参数是常性引用。(2)将一个对象作为实参传递给函数形参。类名(const 类名 & )(1)一个对象初始化另一个对象。
2025-03-06 14:48:41
246
原创 区分C语言中strlen和sizeof
(1)求字符串长度的库函数,需引用头文件#include<string.h>,只针对字符串,不能求其他类型变量的长度。(2)以字节为单位,只管组占用内存空间大小,不关注存放的具体内容,因此sizeof计算包括"\0"(3)只关注内存中是否有"\0",如果没有,会一直持续往后找,注意越界。(1)是一个单目操作符,不是函数,类型是unsigned int。(2)遇到"\0"就结束,求取长度不包括"\0"(3)参数可以是数组,指针,类型,对象,函数等等。1、用sizeof计算常用数据类型的大小。
2024-10-09 20:48:10
244
1
原创 指针(C语言版)
分析:p+1为数组结尾的地址,(int*)(p+1)将该指针强转为指向int*的指针,使指针偏移量发生改变,由12个字节转变为4个字节,则(int*)(p+1)-1的地址为[2]结尾的地址,故*((int*)(p+1)-1)的访问值为3。例如,如果一个指针指向一个整型变量,p+1后指向的地址由原来变量的地址向高地址方向增加了4个字节。我们将内存中字节的编号称为指针,每个编号是唯一的,根据编号可以找到对应的地址,所以提到指针,将其通俗理解为地址。eg:分析*((int*)(p+1)-1)的访问值。
2024-04-13 00:34:16
367
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人