C++
文章平均质量分 84
LXS_357
小马喽奋力学习!懒羊羊勇闯世界!-----------学习中~~~~~~~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Day 18 C++提高 之 STL常用容器(string、vector、deque)
中间的缓冲区都是满的,但是两边(开头和结尾的缓冲区)会有空,插入就直接插入,若多了,就再开一个缓冲区,用新的指针维护就是。对于支持随机访问的迭代器,都可以利用sort算法直接对其进行排序,vector容器也可以用sort进行排序;:不是在原空间之后接新的空间,而是重新开辟一块更大的空间,然后将原数据拷贝到新的空间,并释放原空间再进行相关操作。有5名选手,选手ABCDE,10个评委分别对每一名选手打分,去除最高分、最低分,取平均分为最终选手评分;vector容器,前端封闭,后端开放,在后端进行操作。原创 2025-12-23 10:41:08 · 885 阅读 · 0 评论 -
Day 17 C++t提高 之 STL初识
目标:Vector存放自定义数据类型,并打印输出public:int m_Age;Person p1("懒羊羊", 10);Person p2("喜羊羊", 13);Person p3("沸羊羊", 13);Person p4("美羊羊", 12);Person p5("暖羊羊", 13);//向容器中添加数据//遍历容器中的数据it!= v.end();it++)原创 2025-12-18 16:54:10 · 528 阅读 · 0 评论 -
Day17 C++提高 之 类模板案例
创建一个数组的类,类中需要有数组、数组的容量、数组当前元素个数;这个数组可以存储用户输入的数据类型的数据(数据类型包含系统内置以及用户自定义的数据类型),所以数组中的每一个元素的数据类型都是通用数据类型 T,将数据开放到堆区(用new,但new出来的一般都是指针,所以用T* =new T[n])。如果是编译器提供的拷贝构造(浅拷贝)以及编译器提供的operator=都会出现浅拷贝的问题,所以需要自己写深拷贝解决这个问题(当数据有在堆区的数据,一定要自己写拷贝构造函数和operator函数防止浅拷贝问题;原创 2025-12-17 15:39:00 · 286 阅读 · 0 评论 -
Day 16 C++提高之模板
主流的解决办法是第二种方式,将类模板成员函数的声明和实现写在一起,并将.h文件的后缀名改为.hpp,然后不需要源文件.cpp。C++编写时,通常把每个类单独写在一个文件中,.h文件中写类的声明以及成员函数的声明,然后再.CPP文件中写成员函数具体的实现。----- 表明其后面的符号是一种数据类型,可以用class代替,告诉编译器我的后面是一个通用的东西。:.h和.cpp文件的内容写在一个文件中,然后将.h文件后缀名改为.hpp文件,然后包含.hpp文件。----- 声明创建模板,告诉编译器要写模板了。原创 2025-12-16 17:26:12 · 340 阅读 · 0 评论 -
Day 16 C++之案例----基于多态的职工管理系统的构建
用户在批量创建时,可能会创建不同种类的职工,如果想将不同种类的员工都放入到一个数组中,因为一个数组中必须存放的是相同数据类型的数据,所以可以将所有员工的指针维护到一个数据里,如果在那个在程序中维护这个不定长的数据,可以将这个数组创建到堆区(指针),并利用Worker**的指针维护。先判断文件是否存在,若不存在,提醒用户,若存在,继续操作;判断职工是否存在,输入编号,按照编号查找,若不存在,提醒,若存在,将原来的职工删除,重新录入新的信息,将信息更新到维护的数组中,并保存到文件中。原创 2025-12-07 15:55:02 · 952 阅读 · 0 评论 -
Day 15 C++之文件操作
程序运行时产生的数据都属于临时数据,程序一旦运行结束就都会被释放,通过文件可以将数据持久化。参数解释:字符指针buffer指向内存种的一段存储康健,len是读写的字节数。注意:文件打开方式可以配合使用,利用 | 操作符。参数解释:字符指针buffer指向内存种的一段存储空间,len是读写的字节数。以二进制方式对文件进行读写操作,打开方式要添加一个ios::binary。二进制方式写文件主要利用流对象调用成员函数write。二进制方式读文件主要利用流对象调用成员函数read,函数原型。原创 2025-12-03 11:31:10 · 342 阅读 · 0 评论 -
Day 14 C++面向对象之多态
当子类重写了父类的虚函数,子类中的虚函数表内部会被替换成子类的虚函数地址(&Cat::speak),父类没有发生改变,还是原来的。有一些属性开设在子类的堆区了,所以需要释放,但防止释放不干净,所以需要写虚析构或纯虚析构去走子类的析构函数,使之释干净,若不写,就是只走父类的析构函数。若写执行函数时,函数内调用的是父类的同名函数,这个时候不管传的参数是那个子类的对象,最终调用输出的函数始终是父类的函数,若在父类的同名函数之前加关键字。则将此函数虚化,再调用时,传的是哪个对象就是调用哪个子类对象的函数。原创 2025-12-02 17:34:48 · 883 阅读 · 0 评论 -
Day 13 C++面向对象编程 之 继承
只要子类中出现和父类同名的成员函数,子类的同名成员函数会隐藏掉父类中所有同名成员函数(包括函数的重载),苏哦需要访问到父类的成员函数,就要加作用域来实现访问父类中的成员函数。父类与子类有相同名字的成员时,直接访问的是子类(自身)的,若要访问父类的成员,一定得加作用域,告诉编译器访问的是父类的那个成员,而不是子类的成员。子类中的成员,包含父类的成员以及自己增加的成员,从基类继承过来的是共性,自己新增的是个性。若子类出现和父类同名的静态成员函数,会隐藏父类所有的同名成员函数,若想要访问,就要加作用域。原创 2025-11-06 16:52:15 · 790 阅读 · 0 评论 -
Day 12 C++面向对象编程 之 运算符重载
运算符重载概念:对已有的运算符进行重新定义,再赋予其另一种新的功能,以适应不同的数据类型;对于内置的数据类型,编译器知道如何进行运算,但是编译器不知道自定义数据类型的数据的运算,比如一个类的两个对象的成员属性的运算,编译器就不知道怎么算;可以自己写一个函数进行运算操作,编译器就写了一些通用名称:实现两个自定义数据类型的相加运算:返回数据类型 operator+ (参数列表){运算操作}成员函数重载的本质调用:Person p3=p1.operator+(p2);全局函数重载的本质调用:Perso原创 2025-11-05 15:04:36 · 416 阅读 · 0 评论 -
Day 11 C++面向对象编程 之 对象模型+this指针+友元
在C++中,类内的成员变量和成员函数分开存储,只有非静态成员变量才属于类的对象上。C++编译器会给每个空对象分配一个字节的空间,是为了区分空对象占内存的位置,区分每一个空对象,每一个空对象也应该有一个独一无二的内存地址,进行区分。若对象中有一个成员变量int,则一个对象占4个字节。只有非静态成员变量属于类的对象上,其他(静态成员变量、非静态成员函数、静态成员函数)都是独一份的,不属于类的对象上。每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会公用一块代码。那么,这一块代码是如何区分是哪个原创 2025-11-04 15:54:18 · 771 阅读 · 0 评论 -
Day 10 C++面向对象编程 之 对象的初始化和清理
三种构造更推荐第一种括号法,直观明了。原创 2025-11-03 15:36:12 · 559 阅读 · 0 评论 -
Day 09 C++面向对象编程 之 封装
class 表示要设计一个类,类后面加类的名字,然后再在体内写属性 + 行为。保护权限和私有权限的区别,在继承中有所体现,继承需要二者有父子关系,其中若是保护权限,则子类可以继承,但是若是私有权限的内容,子类不可以继承。类中可以用另一个类做为这个类的成员变量;设计一个圆形类(circle),和一个点类(point),计算点和圆的关系(圆外、圆上、圆内)在类设计时,可以把属性和行为放在不同的权限下,加以控制。在设计类的时候,属性和行为写在一起,表现为事物。进行对象的行为,就是直接调用类中的行为函数。原创 2025-10-28 11:15:21 · 560 阅读 · 0 评论 -
Day 08 C++面向对象编程 之 内存+引用+函数(高级)
写一个引用时,就是说明写了一个指针指向它(a),而写的这个指针的一个指针常量,所以引用不可以更改,即指针指向不可以更改。引用时,const与没有const二者是也是函数重载,但是调用时,系统选择的是没有const的,选择可读可写的函数版本。但是加const之后可以。初始化后,就是它(a)的了,不可以对其进行改变,变成别人(c)的是三心二意是不行的。内存四区的意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程。于指针常量而言,本身是一个常量,指针的常量,指针主要的是指向,所以指针常量。原创 2025-10-27 17:09:04 · 554 阅读 · 0 评论 -
Day 07 C++入门 之实践例子-----通讯录管理系统的设计与构建
对每一个功能设置对饮的索引,输入索引时就进入对应的功能进行操作,结束后按任意键回到初始界面(相当于手机的首页),然后可以继续进行下一个功能的使用。根据用户不同的选择,进入不同的功能,可以选择Switch分支结构进行搭建,用户选择0时,执行退出操作。所有的访问都是通过size的ret进行访问的,所以将size=0,逻辑清空即可。打开VS,创建新项目,添加文件,右键源文件,添加新建项。封装函数显示该界面,在main函数中调用封装好的函数。在main函数中写好基本的框架。创建新项目,添加文件。原创 2025-10-22 11:26:27 · 421 阅读 · 0 评论 -
Day 06 C++入门 之 结构体
struct 结构体名 {结构体成员列表}// 创建一个学生的数据类型(结构体类型)int num;// 成员1-学号// 成员2-姓名;int age;// 成员3-年龄int score;// 成员4-成绩。原创 2025-10-21 11:24:11 · 432 阅读 · 0 评论 -
Day 05 C++ 入门 之 指针
数据类型 * 变量名;int a = 7;// 定义一个指针int* p;// 让指针记录变量a的地址p = &a;// 建立关系cout << "a的地址为:" << &a <<endl;cout << "a的地址为:" << p <<endl;// 二者输出的值相同p指向变量a所存在的空间。原创 2025-10-20 17:21:23 · 289 阅读 · 0 评论 -
Day 04 C++入门之 数组 + 函数
数组,就是一个集合里面存放了相同类型的数据元素。数组中每个数据元素都是相同的数据类型;数组存放于连续的内存位置。数组从0开始进行索引,叫下标,可以通过下标访问数组中的元素。比如 a[0],访问数组a中的第一个元素。数据类型 数组名[数组长度];int A[5];//申明并写出数组中元素个数A[0] = 7;// 数组下标从0开始索引A[1] = 6;A[2] = 5;A[3] = 3;A[4] = 1;// 访问第一个数组元素**数据类型 数组名[数组长度] = {值1, 值2…};原创 2025-10-20 11:25:59 · 955 阅读 · 0 评论 -
Day 03 C++程序流程结构
C/C++中支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构。原创 2025-10-13 20:35:39 · 717 阅读 · 0 评论 -
Day 02 运算符
两个整数相除,结果依然是整数,将小数部分去除,两个小数不可以做取模运算,取模运算必须得有整数。两个小数相除,运算的结果也可以是小数。其中++、–包含前置与后置。原创 2025-10-11 17:32:59 · 339 阅读 · 0 评论 -
Day 01----C++初识以及数据类型
C++规定在定义变量或常量时,都必须为其指定变量类型,否则无法为其分配内存空间(因为不同数据类型占据内存空间不同)作用:用于显示单个字符,只占用一个字节,在内存中存储对应的ASCII码,单引号内只可写一个字符。打开软件visual studio,选择创建新项目,选择C++,选择空项目,进行创建。输出时显示效果相同,都是整数,若赋值超出取值范围,则从头开始重新数即为输出值。作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则,与C类似。作用:表示小数,单精度float,双精度double。原创 2025-10-11 16:40:46 · 783 阅读 · 0 评论
分享