前言在上一篇文章我们学习类和对象的过程中,我们不是写了一个日期类嘛。 但是我们之前实现的日期类并不是很完整,我们只是借助它来帮大家学习类和对象的知识。 那这篇文章呢,我们就在之前的基础上,再增添一些功能,实现一个比较完整的日期类,作为一个练习,来帮助我们更好的理解我们之前学过的知识。这是我们之前一起写的不太完整的日期类:代码语言:javascript复制 ......
24
0
0
2024-05-04
这篇文章呢我们接着上一篇的内容,继续C++类和对象的学习。1. 类的6个默认成员函数通过上一篇文章的学习,我们知道如果一个类中没有成员变量,也没有成员函数,啥也没有,那我们把它叫做空类。 即如果一个类中什么成员都没有,简称为空类。比如:代码语言:javascript复制class Date { }; 那现在问大家一个问题:空类中真的什么都没有吗?🆗 ......
24
0
0
2024-05-04
​这篇文章我们开始学习C++中的类和对象。1. 面向过程和面向对象初步认识我们之前学的C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。而C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。2.类的引入我们之前在C语言中学过结构体:但是C语言中的结构体只能定义变量,比如:对于这个结构体来说: ......
20
0
0
2024-05-04
前言预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。C语言提供多种预处理功能,主要处理#开始的预编译指令,如宏定义(#define)、文件包含(#include)、条件编译(#ifdef)等。合理使用预处理功能编写的程序便于阅读、修改、移植和 ......
18
0
0
2024-05-04
这篇文章我们一起来学习一下C/C++程序的内存开辟以及柔性数组!!!1. C/C++程序的内存开辟C和C++的内存开辟方式是非常类似的,这篇文章我们就来学习一下C/C++程序的内存开辟。在之前的文章里其实我们简单的介绍过C语言中的内存划分。 大致可以分为:栈区,堆区和静态区:那今天,我们来更加细致的细致的讲解一下C/C++程序的内存开辟。 首先,我们来看一张 ......
18
0
0
2024-05-04
这篇文章,我们一起来学习C语言中的动态内存管理!!!1.为什么存在动态内存分配我们先来想一下,我们现在掌握的开辟内存的方式是什么:是不是就是直接创建一个变量或者数组,然后操作系统给我们分配空间:代码语言:javascript复制int main() { int val = 20;//在栈空间上开辟4个字节 int arr[10] = { 0 };/ ......
19
0
0
2024-05-04
上一篇文章我们学习了多态的语法,想必大家都会有很多疑问,这篇文章,我们就来带大家看看多态是如何实现的,它底层的原理是怎样的…前言需要声明的,本文中的代码及解释都是在vs2022下的x86程序中,涉及的指针都是4bytes。 如果要其他平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等1. 虚函数表指针与虚函数表首先,我们来 ......
26
0
0
2024-05-03
1.游戏规则扫雷的详细规则是随便点开一个方格,根据展开方格的数字去推断其相邻九宫格内未展开方格下面是否是地雷,最终任务就是点开所有没有地雷的方格,以找出所有的地雷。 要取得高分,就必须在尽量短的时间内清除所有的地雷。 得分计算方法:扫雷得分=分数基数X难度系数/扫雷时间,其中分数基数为10000,难度系数=每局地雷数/每局总格子数,扫雷时间按毫秒计算。所需要 ......
23
0
0
2024-05-03
1.实现功能本文将采用C语言来实现一个简单的通讯录,要求功能如下代码语言:javascript复制//实现一个通讯录 //1.可以保存100个人的信息 //2.增加人的信息 //3.删除指定联系人的信息 //4.查找 //5.修改 //6.排序 //7.显示所有联系人 下面我们来一步步实现2.实现细节与具体思路1.主程序设计首先,设计一个主程 ......
26
0
0
2024-05-03
1. 单继承在上一篇文章中,我们给大家演示的其实都是单继承。单继承的概念:单继承:一个子类只有一个直接父类的继承关系为单继承2. 多继承然后呢C++里面还支持多继承,那什么是多继承呢?一个子类有两个或以上直接父类时称这个继承关系为多继承比如一个类表示汽车,另一个类表示飞机。现在你希望创建一个新的类,使得它既可以像汽车一样在地上跑,又可以像飞机一样在天上飞,即 ......
25
0
0
2024-05-03
一.AVL树的概念我们知道,二叉搜索树的效率很高,如果数据有序或接近有序二叉搜索树将退化为单支树,查 找元素相当于在顺序表中搜索元素,效率低下,为了解决这个问题,AVL树(平衡二叉树)就出现了。AVL树的性质:它的左右子树都是AVL树左右子树高度之差(简称平衡因子)的绝对值不超过1(-1/0/1)(右子树-左子树)上图就是一个AVL树,每个节点上的数字为这个 ......
19
0
0
2024-05-03
这篇文章我们来学习排序。1. 排序的概念及其运用1.1 排序的概念排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在 ......
17
0
0
2024-05-03
前言我们在前面文章学到的数据结构:顺序表、链表,不管是单链表还是带头双向循环链表,以及后面的栈和队列。它们呢,其实都属于一类数据结构——线性表。那从这篇文章开始:我们将开始学习数据结构中的非线性结构,今天我们先来学习第一种——二叉树。1. 树的概念及结构那要学习二叉树,我们首先要知道什么是树。所以我们先来了解一下数据结构中树的概念及结构。如果不提数据结构,只 ......
19
0
0
2024-05-03
前言在前面的文章中,我们已经学习了STL中底层为红黑树结构的一系列关联式容器——set/multiset 和 map/multimap(C++98)1. unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log_2 N,即最差情况下需要比较红黑树的高度次。 在C++11中,STL又提供了4个un ......
26
0
0
2024-05-02
一.再谈构造函数构造函数其实分为: 1.函数体赋值2.初始化列表 之前所讲到的构造函数其实都是函数体赋值,那么本篇文章将会具体讲述初始化列表。初始化列表语法以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟 一个放在括号中的初始值或表达式。代码语言:javascript复制class Date { public: Date(in ......
31
0
0
2024-05-02