自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++STL初始

学习目标:vector中存放自定义数据类型,并且打印输出2.5.3 Vector容器嵌套容器学习目标:容器中嵌套容器,我们将所有数据进行遍历输出。

2023-08-03 17:24:00 51

原创 C++提高编程 1模板

template <typename T>//声明一个模板,告诉编译器后面的代码中紧跟着的T不要报错,T是一个通用数据类型。·解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.cpp,hpp是约定的名称,并不是强制。总结:类模板和函数模板语法相似,在声明模板template后面加类,此类称为类模板。·当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型。//·函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换。cout << "func 调用" << endl;

2023-07-25 20:03:32 29

原创 C++核心编程

在上一个添加功能中,我们只是将所有的数据添加到内存中,一旦程序结束就无法保存了。代码区是共享的,共享的目的是对频繁可执行的程序,只需要在内存中有一份代码即可。堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete。堆区:由程序员分配和释放,若程序员不释放,程序结束时有操作系统回收。代码区是只读的,使其只读的原因是防止程序意外地修改了它的指令。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。栈区:由编译器自动分配释放,存放函数的参数值,局部变量等。

2023-06-09 20:58:18 68

原创 C++多态

将每个零件封装出抽象基类,并且提供不同的厂商生产不同的零件,例如Intel厂商和Lenovo厂商。多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶。创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口。静态多态:函数重载和运算符重载属于静态多态,复用函数名。动态多态的函数地址晚绑定-运行阶段确定函数地址。

2023-06-08 21:03:14 31

原创 C++运算符重载

运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。作用:重载关系运算符,可以让两个自定义类型对象进行对比操作。总结:重载左移运算符配合友元可以实现输出自定义数据类型。由于重载后使用的方式非常像函数的调用,因此称为仿函数。4.赋值运算符operator=,对属性进行值拷贝。作用:通过重载递增运算符,实现自己的整型数据。3.默认拷贝构造函数,对属性进行值拷贝。1.默认构造函数(无参,函数体为空)2.默认析构函数(无参,函数体为空)函数调用运算符()也可以重载。

2023-06-04 23:00:24 22

原创 C++友元

在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术。客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去。生活中你的家有客厅(public),有你的卧室(private)友元的目的就是让一个函数或者类访问另一个类中私有成员。但是呢,你也可以允许你的好闺蜜好基友进去。友元的关键字为friend。

2023-06-04 14:26:02 21

原创 C++对象模型和this指针

this指针指向被调用的成员函数所属的对象。每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。C++中空指针也是可以调用成员函数的,但是也要注意有没有用到this指针。在类的非静态成员函数中返回对象本身,可以使用return*this。this指针是隐含每一个非静态成员函数内的一种指针。成员函数后加const后我们称为这个函数为常函数。我们知道在C++成员变量和成员函数是分开存储的。在c++中,类内的成员变量和成员函数分开存储。只有非静态成员函数才属于类的对象上。

2023-06-04 13:45:06 17

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

对象的初始化和清理工作是编译器强制要我们做的事情,因此我们不提供构造和析构函数,编译器会提供编译器提供的构造函数和析构函数是空实现。一个对象或者变量没有初始状态,对其使用后果是未知同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题。C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理操作。C++中的面向对象来源于生活,每个对象也都会有初始设置以及对象销毁前的清理数据的设置。4.程序在调用对象时候会自动调用构造,无需手动调用,而且只会调用一次。

2023-06-03 21:58:02 40

原创 C++函数提高

C++中函数的形参列表里可以有占位参数,用来做占位,调用函数时必须填补该位置。在现阶段函数的占位参数存在意义不大,但是后面的课程中会用到该技术。在C++中,函数的参数列表中的形参是可以有默认值的。语法:返回值类型 函数名(参数=默认值){}语法:返回值类型 函数名 (数据类型){}注意:函数的返回值不可能作为函数重载的条件。函数参数类型不同或者个数不同或者顺序不同。作用:函数名可以相同,提高复用性。函数重载碰到函数默认参数。

2023-06-01 14:06:07 22

原创 c++引用

结论:C++推荐用引用技术,因为语法方便,引用本质是指针常量,但是所有的指针操作编译器都帮我们做了。总结:通过引用参数产生的效果同按地址传递是一样的。引用的语法更清楚简单。在函数形参列表中,可以加const修饰形参,防止形参改变实参。作用:函数传参时,可以利用引用的技术让形参修饰实参。本质:引用的本质在C++内部实现是一个指针常量。作用:常量引用主要用来修饰形参,防止误操作。语法:数据类型 &别名=原名。优点:可以简化指针修好实参。引用在初始化后,不可以改变。作用:不要返回局部变量引用。

2023-05-31 18:26:29 18

原创 C++类和对象

人可以作为对象,属性有姓名、年龄、身高、体重......,行为有走、跑、吃饭、唱歌....车也可以作为对象,属性有轮胎、方向盘、车灯......行为有载人、放音乐、放空调....在C++中struct和class唯一的区别就在于默认的访问权限不同。具有相同性质的对象,我们可以抽象为类,人属于人类,车属于车类。类在设计时,可以把属性和行为放在不同的权限下,加以控制。优点1:将所有成员属性设置为私有,可以自己控制读写权限。在设计类的时候,属性和行为写在一起,表现事物。将属性和行为加以权限控制。

2023-05-28 18:11:16 23

原创 C++文件操作

2、二进制文本-文本以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们。len是读写的字节数。例如:用二进制方式写文件ios::binary|ios::out。文件输出流对象,可以通过write函数,以二进制方式写数据。文件输入流对象 可以通过read函数,以二进制方式读数据。二进制方式写文件主要利用流对象调用成员函数write。二进制方式读文件主要利用流对象调用成员函数read。打开文件时候需要指定操作文件的路径,以及打开方式。读文件与写文件步骤相似,但是读取方式相对于比较多。

2023-05-27 01:52:45 26

原创 c++通讯录

cout << "****** 1、添加联系人 *****" << endl;cout << "****** 2、显示联系人 *****" << endl;cout << "****** 3、删除联系人 *****" << endl;cout << "****** 4、查找联系人 *****" << endl;cout << "****** 6、清空联系人 *****" << endl;cout << "****** 0、退出联系人 *****" << endl;

2023-05-21 22:06:10 64

原创 C++结构体

设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值最终打印老师数据以及老师所带的学生数据。语法:struct 结构体名 数组名{元素个数}={{},{},{},......{}}设计一个英雄的结构体,包括成员姓名,年龄,性别;例如:每个老师辅导一个学生,一个老师的结构体中,记录一个人学生的结构体。总结:结构体指针可以通过->操作符 来访问结构体中的成员。

2023-05-20 20:49:18 25

原创 C++指针

技巧:看const右侧紧跟着的是指针还是常量,是指针就是常量指针,是常量就是指针常量。例如数组:int arr[10]={4,3,6,1,2,10,8,7,5};总结:如果不想修饰实参,就用值传递,如果想修饰实参,就用地址传递。总结:空指针和野指针都不是我们申请的空间,因此不要访问。作用:利用指针作函数参数,可以修改实参的值。2. const修饰常量----指针常量。注意:空指针指向的内存是不可以访问的。指针的作用:可以通过指针间接访问内存。const修饰指针---常量指针。7.5 const修饰指针。

2023-05-19 19:11:22 20

原创 C++函数

return表达式:和返回值类型挂钩,函数执行完后,返回相应的数据。作用:告诉编辑器函数名称及如何调用函数,函数的实际主体可以单独定义。一个比较大的程序,一般分别若干个程序块,每个模块实现特定的功能。总结:函数定义里小括号内称为形参,函数调用是传入的参数称为实参。·返回值类型:一个函数可以返回一个值,在函数定义中。·函数体语句:花括号内的代码,函数内需要执行的语句。·函数的声明可以多次,但是函数的定义只能有一次。总结:值传递时,形参是修饰不了实参的。·参数列表:使用该函数时,传入的数据。

2023-05-07 14:05:44 71

原创 C++数组

一维数组定义的三种方式:1.数据类型 数组名{数组长度};2.数据类型 数组名[数组长度]={值1,值2,······};3.数据类型 数组名[]={值1,值2,·····};数组特点:放在一块连续的内存空间中数组中每个元素都是相同数据类型总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名总结2:数组下标是从0开始索引。

2023-05-07 11:56:56 58

原创 程序流程结构

1.while循环语句作用:满足循环条件,执行循环语句语法:while(循环条件)(循环语句)解释:只要循环条件的结果为真,就执行循环语句注意:在执行循环语句时候,程序必须提供跳出循环的出口,否则出现死循环。作用:满足循环条件,执行循环语句语法:do{循环语句}while{循环条件};注意:与while的区别在于do....while会执行一次循环语句,在判断循环条件总结:与while循环区别在于,do...while先执行一次循环语句,再判断循环条件。

2023-05-06 17:59:45 29

原创 程序流程结构

总结:与if语句比,对于多条件判断时,switch的结构清晰,执行效率高,缺点是switch不可以判断区间。有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?case 结果2:执行语句;case 结果1:执行语句;如果表达式1的值为假,执行表达式3,并且返回表达式3的结果;如果表达式1的值为真,执行表达式2,并且返回表达式2的结果;注意2:case里如果没有break,那么程序会一直向下执行。注意1:switch语句中表达式类型只能是整型或者字符型。作用:执行多条件分支语句。

2023-04-25 18:29:01 29

原创 C++运算符

作用:用于执行代码的运算1.用于处理四则运算总结:在除法运算中,除数不能为0总结:前置递增先对变量进行++,在计算表达式,后置递增相反。

2023-04-25 14:56:34 24

原创 C++数据类型

C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。二、sizeof关键字。字符变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元。1.C风格字符串 char 变量名[ ]="字符串值";注意1:在显示字符变量时,用单引号将字符括起来,不要用双引号。2.C++风格字符串:string 变量名="字符串值"注意2:单引号内只能有一个字符,不可以是字符串。数据类型存在意义:给变量分配合适的内存空间。作用:整型变量表示的是整数类型的数据。

2023-04-25 13:12:26 50

原创 C++初识

建议:给标识符命名的时,争取做到见名知意的效果,方便自己和他人的阅读。通常在变量定义前加关键字const,修饰该变量为常量,不可修改。提示:在给变量或者常量起名称的时候,不要用C++得关键字,否则会产生歧义。2.const修饰的变量 const 数据类型 常量名=常量值。作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则。1.#define宏常量:#define 常量名 常量。变量的创建的语法:数据类型 变量名=变量初始值;在定义变量或者常量时候,不要用关键字。

2023-04-23 21:38:53 22

原创 【无标题】

2. sizeof 是求字符串长度的-只能针对字符串求长度-库函数-使用得引头文件。数组在内存中存储的地址是连续存放的,因为是int类型所以没个内存之间差4个字节。3. sizeof 计算变量、数组、类型的大小-单位是字节-操作符。二维数组中存放空间也是连续的,因为是int类型所以差4个字节。4.strlen计算长度时没遇到'\0'是不会停下来的。1.1. strlen 和 sizeof没有什么关联。用数组来进行无序冒泡排序,每行代码都有讲解。

2023-04-22 12:43:03 27

原创 C语言复习笔记

代码解析:求各位数的数字 红线进,黑线出。

2023-04-21 23:19:49 23

原创 C语言复习笔记

1.通过传址调用来实现。2.通过函数声明和函数调用来实现。

2023-04-21 21:58:07 35 1

原创 C语言复习笔记

进入第二个switch语句中执行case 1的语句n+1=2 n=2然后循环上去还在第二个switch语句中m+1=4 m=4 n+1=3 n=3然后退出第二个switch语句中继续向下执行执行case 4 m+1=5;代码解析:当age=100时,先if语句判断后条件不成立继续往下面的else if语句判断知道判断到else语句之前没有语句成立就执行else语句。第3节分支语句和循环语句循环语句。代码解析:n和m先赋值,n=1进入第一个switch语句中,执行case 1的语句,m+1=3,m=3。

2023-04-21 21:49:57 33 1

原创 C语言复习笔记

虽然我们在int n 前面加上了const了但本质上n还是一个变量只是赋有了常属性而已,在要使用常量的地方n是不能使用的,但是你想让它表达一个不能变的量还是可以的。字符串的结束标志位'\0'字符串要用""括起来,要是数组里面用多个字符的话字符是没有'\0'的所以会报错。解释代码:当scanf输入input的值当input的值为1的时候输入if下方的printf函数。scanf_s不是标准c语言提供的是。用法是:strlen求长度的时候不算\0遇到'\0'才停止。它定义的枚举常量都是有值的分别是0 1 2。

2023-04-21 20:09:10 58 1

原创 C语言复习笔记

当把sum放在这个箭头所指时它的作用域就是这个大括号结束了,里面的printf能接收到,因为箭头大括号包含里面的大括号能作用在里面的printf里。而把num放在箭头指的空号里时,不能正常执行,原因是sum是局部变量在所在大括时sum的作用域就在大括号内,printf函数接收不到。当定义一个全局变量global和一个自定义函数的时候全局变量global的作用域是整个程序,所以。当我们又建了一个.c文件放一个全局变量global时我们下图的代码能执行吗?2.创建一个项目->创建源文件->写代码->编译代码。

2023-04-21 19:05:16 43 1

空空如也

空空如也

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

TA关注的人

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