自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++:运算符重载-加号(+)

接下来就以加号(+)为例子,阐述如何对双目运算符进行重载。

2024-04-30 00:14:40 579

原创 C++:string 类

在C++中定义一个无论采用哪种方式,都可以创建一个类型的字符串。选择哪种方式取决于代码的需求和个人偏好。

2024-04-29 00:00:00 774

原创 C++:常函数

在C++中,常函数(const member functions)是指在类的成员函数声明和定义中使用const关键字修饰的函数。常函数的存在主要是为了在类的实例上提供一种保证:该函数不会修改类的成员变量。在类的成员函数声明中,如果函数不会修改类的成员变量,可以将其声明为常函数。

2024-04-28 00:16:41 495

原创 C++:浅拷贝和深拷贝

深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是在编程中经常遇到的两种复制数据的方式,它们在操作上有着明显的区别。

2024-04-27 00:30:24 772

原创 C++:静态成员变量和静态成员方法

静态成员方法的声明和定义方式与普通成员方法类似,但在声明和定义时需要在前面加上static关键字。public://静态成员变量//静态成员函数//构造函数(调用静态成员方法)std::cout << "构造函数" << std::endl;

2024-04-26 00:06:44 365

原创 C++:匿名对象

在C++中,匿名对象是指在不分配给定变量名称的情况下创建的临时对象。这些对象通常用于传递参数给函数、作为函数的返回值或者在表达式中使用。

2024-04-25 18:51:42 442 1

原创 C++:拷贝构造函数的初始化列表

拷贝构造函数的初始化列表是在拷贝构造函数的定义中出现的一组初始值,用于初始化新创建的对象的成员变量。它的语法是在构造函数的声明后面使用冒号()来开头,然后列出要初始化的成员变量和它们的初始值。初始化列表的优点在于它允许在对象构造之前对成员变量进行初始化,并且可以直接初始化成员变量,而不是先调用默认构造函数再进行赋值。这样可以提高效率,避免不必要的额外操作。

2024-04-25 00:39:45 386

原创 C++:this指针

this是一个指向当前对象的指针,它可以在类的成员函数中使用。它是每个类的非静态成员函数的隐含参数;当你在类的成员函数中使用this时,它指向调用该函数的对象。主要作用是让类的成员函数能够访问对象的成员变量和其他成员函数。因为每个对象都有自己的成员变量,所以需要一种方法来确定成员函数是在哪个对象上调用的,这就是this指针的作用。

2024-04-24 00:11:36 955 2

原创 C++:特殊成员函数

此时我在创建roleA对象时调用其构造函数进行成员初始化,将roleA对象的m_nHP值设置为44,接着实例化对象roleB,且调用拷贝构造函数,将对象A作为拷贝对象进行传入;它通常用于对象的复制或传递。此时我先实例化一个对象roleA,接着再创建一个对象roleB,且再创建对象B的时候调用拷贝构造函数进行对象的复制与传递;构造函数在对象创建时自动调用,一般我们会在构造函数中针对对象的成员变量进行初始化,这个时候就可以对构造函数进行。可以看到对象的构造函数在创建对象时执行,析构对象在释放对象时执行。

2024-04-23 00:30:52 1143

原创 C++ 面向对象-封装

C++ 是一种多范式编程语言,它支持面向对象编程(OOP)范式。面向对象编程是一种程序设计思想,其中程序由对象组成,每个对象都是一个实例,具有数据和相关操作。在C++中,实现面向对象编程主要通过类和对象。:类是一种用户定义的数据类型,用于封装数据和操作。类可以看作是对象的蓝图或模板,描述了对象的属性(成员变量)和行为(成员函数)。C++ 中的类是一种用户定义的数据类型,用于封装数据和相关操作。类可以看作是一种模板,描述了数据的结构和如何对数据进行操作。在类中,可以定义成员变量(数据)和成员函数(操作)

2024-04-22 00:11:39 1172

原创 C++:范围-based for 循环

范围-based for 循环是 C++11 引入的一种循环语法,它简化了遍历容器和数组等序列的操作,使代码更加清晰和简洁。它通常用于遍历容器类(如数组、向量、列表等)中的元素,或者以范围的形式遍历初始化列表。范围-based for 循环对于遍历容器类中的元素非常方便,并且代码更加简洁易读,特别适用于不需要索引信息的情况下。中的每个元素并输出。在每次循环迭代中,变量。是容器中的每个元素,在每次循环迭代中,中的每个元素值,每个元素占据一行。将分别代表容器中的每个元素的值。中的每个元素的值,然后通过。

2024-04-21 12:22:24 529

原创 C++:引用

C++中的引用是一种别名,允许开发者在程序中使用已存在的变量名称来引用另一个变量。引用提供了一种简洁的方法来操作变量,而不需要复制数据本身。引用使用符号声明,并在初始化时绑定到另一个变量。引用一旦初始化后,就不能再绑定到另一个对象。

2024-04-20 00:29:15 652

原创 C++动态内存

堆上的内存分配和释放是由程序员手动管理的,需要程序员调用相应的函数来分配和释放内存。用于在堆上动态分配原始的、未初始化的内存块,它返回一个指向分配内存区域的指针,不涉及对象的构造和初始化。:栈上分配的内存的生命周期与函数调用的生命周期密切相关,当函数调用结束时,栈上的局部变量会被自动销毁。用于在堆上动态分配对象的内存,它可以调用对象的构造函数进行初始化,并返回指向对象的指针。分配的对象或数组的内存,它的参数是一个指向对象或数组的指针。函数的参数是一个指向动态分配的内存区域的指针,它的类型是。

2024-04-19 00:41:52 1028 1

原创 C++:文件内容完全读入

在上一篇文章中我留下了一点小坑:使用>>运算符,这个运算符默认将空格作为分隔符,所以在文件内容读取的时候发现在读到空格时就会停止读取,导致读取内容不完整,这显然不符合日常的使用用能,那么今天就来讨论以下如何将文件内容完全读取。

2024-04-18 00:26:25 533

原创 C++ - 文件流fstream

C++ 文件流是指在C++编程中使用的用于文件输入输出操作的机制。这种机制允许程序员以类似于流的方式读取和写入文件数据。在C++中,文件流通常使用<fstream>头文件提供的类来实现。常用的文件流类包括:1. std::ofstream:用于向文件中写入数据的输出文件流类。2. std::ifstream:用于从文件中读取数据的输入文件流类。3. std::fstream:std::fstream 是 C++ 标准库中的一个类,用于文件输入输出操作。

2024-04-17 00:34:44 1138

原创 C++-命名空间

C++ 命名空间是一种用于组织代码的机制,可以帮助避免命名冲突,提高代码的可读性和可维护性。命名空间将代码分组到逻辑单元中,允许在不同的代码单元中使用相同的名称而不会产生冲突。命名空间通过将代码放置在一个命名空间内部来实现。在 C++ 中,命名空间由关键字 namespace 开始,后面跟着命名空间的名称以及一对大括号,大括号中包含了命名空间内部的代码。

2024-04-16 00:37:29 797 1

原创 C++-基础

C++ 是一种通用编程语言,具有高性能、灵活性和广泛的应用领域。它是在 1979 年由 Bjarne Stroustrup 开发的,最初被称为“C with Classes”,随后在 1983 年正式更名为 C++。C++ 基于 C 语言,同时引入了面向对象编程(OOP)的特性,使得它既可以进行底层系统编程,又能够进行高级的软件开发。C++源代码的后缀尾.cpp。

2024-04-15 12:22:18 800

原创 C-更多指针操作

就是指定28为28字节,接着因为要访问的时int类型的成员,所以需要使用(int*)将指针强制转换为int类型的指针,最后使用 * 调用出成员的值。经过成员偏移量的计算可以得到整型成员偏移量为28(在结构体对齐文章中有提到如何进行计算),所以(char。,并为其分配了足够的空间来存储指向整数的指针(5个指针)。则被声明为指向一个包含 4 个整型元素的数组的指针,因此。,指向一个含有 4 个整型元素的数组。数组,打印出每个指针所指向的整数值。,即指向 4 个整型元素的数组的指针。是一个二维数组,而指针。

2024-04-08 00:29:44 285

原创 C-结构体对齐

63。

2024-04-07 01:28:00 1151

原创 联合&枚举

联合(Union)是C语言中的一种特殊的数据类型,它允许在同一内存位置存储不同类型的数据。与结构体(struct)不同的是,联合的所有成员共享同一块内存空间,因此联合中的每个成员的大小加起来不能超过联合的总大小(联合的总大小就是联合中最大成员的大小)。枚举常常用于提高代码的可读性和可维护性,因为它允许开发人员使用具有描述性的符号来表示特定的值,而不是使用原始的数字或字符串。这意味着,如果联合中的任何成员的大小超过了联合的总大小,那么这个成员将无法完全存储在联合中。MONDAY, // 默认值为0。

2024-04-02 14:50:00 474

原创 C-文件操作&异或加密保护文件

if ((pFile = fopen(szFilePath, "r")) == NULL) { //先赋值后判断(pFile = fopen();: 检查实际读取的文件长度是否与预期的文件长度相同。但是在打开文件后发现文件内容呈乱码情况,这个时候可以在打开文件的时候可以指定文件的编码格式。,其作用是从指定的文件路径读取文件内容,并返回一个指向读取内容的字符串指针。

2024-04-01 15:05:24 955

原创 C-结构体 -struct

Eg://定义结构体_PlayerInfoint nHP;float PosX;float PoxY;​int main()//创建PlayerInfo类型的结构体,并使用初始化列表进行初始化(szName="wolven",nHP=500,PosX=50.32f,PosY=100.34f)​//打印结果为wolven//对某个成员变量进行修改//打印结果为1000//指针指向结构体//声明结构体指针//指针指向PlayObj结构体return 0;

2024-03-27 20:41:22 513

原创 C-宏与条件编译探索

define MAX_VALUE 256 (定义常量)Eg:​int main()return 0;打印的值为10;这段代码使用了一个宏定义ADD(a),它的定义是a+5。在C语言中,宏定义使用#define来声明,这里的ADD(a)实际上是一个预处理指令,它告诉编译器在编译过程中将所有的ADD(5)替换为5+5。Eg://找出两个数中的最大值a:b​int main()return 0;打印结果为10;判断系统环境是Windows系统还是Linux系统​。

2024-03-27 00:14:02 900 1

原创 C--函数

需要特别注意的:编写函数体具体功能的文件(tools.c),和调用函数的文件(hello.c)必须要时相同的文件类型;#调用:第一个参数为参数的总个数,后续的为具体参数。函数中所给到的是实参(实际的参数,真正参与运算的值);//函数定义的时候,第一个参数为参数的个数,后续...就是具体参数(但是不确定格式)#include<头文件> :该形式的调用、包含是用来进行系统自带的头文件。#include "头文件":该形式的调用、包含通常用于用户自己写的头文件。2.头文件的声明:将可复用的函数集成在头文件中;

2024-03-26 00:38:28 1055

原创 程序的三大结构

顺序结构:程序之上而下进行运行(代码从头到尾进行执行;这里就不进行举例了)分支结构:根据条件的不同选择代码执行路径如if;表达式会存在结果:true或者false,如果表达式的结果是true,则进入if语句中的代码块中,执行代码如果表达式的结果是false,则进入else的代码块中进行执行(如果存在else if,那么在判断完所有else if不符合后,才会进入else语句。循环结构: 循环语句允许我们执行一个语句或语句组多次。

2024-03-23 00:30:23 798

原创 C-位运算符

输出的值为3 A(cT^cB) B(cT^cA),当两个数据(cA,cB)进行异或操作得到第三个值(cT)以后,那么这个时候第这三个数据两两进行异或后会得到第三个数据。(最简单的异或加密)二进制数需要由0b开头 十六进制0x开头。

2024-03-21 22:52:19 428

原创 C-运算符

除 (不能除0,会引发除0异常,0除可以)如果两个整数相除得到的是小数(即被除数小于除数),这个时候只能得到0;前面的判断式为true时,则取:前面的数字,为false时则为冒号后面的数字。前置++ ++a(当运算符在前面的时候会先自增,再运行当前的语句)bool bFlag = a==b;+= 加等于 a+=5 => a=a+5。-= 减等于 a-=5 => a=a-5。*= 乘等于 a*=5 => a=a*5。%= 取余等于a%=5 => a=a%5。/= 除等于a/=5 => a=a/5。

2024-03-21 00:52:11 303

原创 字符串操作

注意:sprintf是一个不安全的函数,在使用的时候会警告并且报警,这个时候可以在预处理器定义中将宏定义_CRT_SECURE_NO_WARNINGS添加进去,抑制报警。wchar_t类型字符串:使用wcslen()函数进行wchar_t型字符串的长度计算。#声明一个数组用于存储拼接后的字符串。char类型字符串: 使用strlen()函数进行字符串的长度计算;strcat(数组1,要进行拼接的字符串);

2024-03-20 01:18:49 319

原创 C-输出函数

u 无符号整数(unsigned int、unsigned long)%hhu 格式化输出无符号整数(unsigned char)%ls 宽字节字符串(需要使用wprintf进行输出)wchar_t wcChineseName[] = L"你好";%lld longlong类型。wchar_t wcBuffers[50] = L"你好吗";printf 是一个变参函数(函数的参数不固定);%X 大写十六进制整数。%% 输出%(百分号)printf("%d",变量名);转义字符:\r 回车键。

2024-03-19 01:04:43 319

原创 数据类型:

但是可以看到wchar_t类型一个字符是以2个字节来表示的,unicode(wchar_t)可以表示ASCII(char)表示不了的字符,wchar_t类型的数据可以兼容char类型的,预留的00是为了在兼容的同时还可以去表示其他的字符。char类型和wchar_t类型在内存中使用整数表示的,那么这个时候就可以表明这两个类型的值也是有存储范围的。内存读取:68 00 65 00 6c 00 6c 00 6f 00 00 00。00表示字符串的结束符(表示终止)--->如果是一个字符串就必须有00结尾。

2024-03-17 22:20:53 309

原创 Visual Studio基本使用

Visual Studio基本介绍

2024-03-16 11:07:36 341

原创 C语言基础

C基础,可执行文件生成过程

2024-03-16 02:31:11 1331

空空如也

空空如也

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

TA关注的人

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