- 博客(26)
- 收藏
- 关注
原创 c++运算符重载详细笔记,有关重载的最常用的用法
c++加入了运算符重载:而实际上我们在不知不觉的情况下就已经在使用运算符重载了。就比如我们经常使用的string类,c++在string内部进行了运算符重载,他重载了+,-,<<,>>等。我们在很早之前就已经在使用了。这也是为什么c++中string类非常非常的好用!
2024-04-12 09:22:25
383
1
原创 c++的友元函数,详细笔记,细说三种友元用法
首先,了解友元函数之前,我们来想一想类内函数(成员函数)和类外函数有何区别。一,类内函数可以访问类的私有成员,并且自带一个this指针指向成员函数所指向的某一对象。二,类外函数,无法访问类的私有成员,且不带this指针。比如,如果类内的成员函数我们在调用的时候一定是:对象.函数()这样调用,这就要求了这个函数的第一个,一定是这个对象(这个知识点,我们在后面运算符重载里面讲解),而友元函数是什么?友元函数和普通的函数并无区别,也没有this指针。怎么做呢?
2024-04-10 09:10:59
356
原创 c++ 有关类的静态成员详细笔记
别名也可以叫做静态数据成员,如果一个类建立了多个对象,那么每一个对象都会有自己的数据成员。这些值呢?互不相干,很好地实现了每一个对象之间的区别也就是所谓的封装和隐藏。但在有的时候,我们希望有一些数据可以为一个类中的所有对象共有,所以c++通过静态成员变量来解决这个问题所以说,静态成员变量是类的所有对象所共有的,都可以通过自己的下标去访问这个变量。而系统也会给静态成员单独分配一个储存的空间,不挂被定义了多少个类的对象,静态成员变量的值对于每一个对象都是一样的。
2024-03-29 09:06:57
363
原创 c++之拷贝构造和赋值
其作用就是,使用一个已经创造出来的对象来初始化另一个新对象,当然我们如果不写这个函数,系统也会自动生成一个为什么也不干的拷贝构造函数,并依次把非static的成员一一拷贝到正在创建的对象当中去。如果类中出现指针,拷贝构造函数,析构函数必须自己写,否则会出现严重的错误,比如连续的释放同一处空间,或者是一个指针同时指向了两个地址。3,第一个参数必须类本身的对象的const引用,可以有其他的参数,但是必须有默认值。2,它只能有一个参数,如果有其他的,那么必须有默认值。而赋值就是,先初始化,然后被给予值。
2024-03-03 18:16:42
402
原创 c++关于this指针
每一个成员函数都有一个this指针,其中包括构造和析构俩函数。它指向的是调用的对象,可以直接使用this或者*this来使用。this指针是隐藏在每一个成员函数中的特殊指针,它指向的是所在成员对象的本身。this顾名思义,就是“这个”this:指针,指向当前的对象 ,"我" ,只能出现在类的成员函数中,一般不使用。
2024-02-13 15:02:12
493
原创 c++,类,构造函数和析构函数。他们到底有多少细节?
不论是构造函数还是析构函数都是可以在类内或者类外定义:如下class A{private:略public:A(){...这里就省略了}//这个便是构造函数的定义方式~A(){同上}//相比构造函数,为了区分析构函数,前面加一个小波浪class A{private:略public:A();~A();A::A(形参){函数体A::~A(形参){函数体1、构造函数名必须和类名一样2、构造函数没有返回值,相比之下析构函数既没有返回值,也没有参数,故不能重载。
2024-02-10 13:56:10
644
原创 c++ 类的第二章,对象的创建和使用
定义了类,相当于定义了一个数据类型。使用方法和int double是一样的,可以定义变量,数组,指针,而定以后的变量,我们把它叫做这个类的对象。之前之所以说类的用法和int double的用法一模一样,是因为就连引用的方式也是一模一样。其中的成员变量和成员函数引用都可以以相同的方式来访问。对象是通过“.”这个点来访问成员变量和成员函数的。类型名.成员函数 用来访问成员函数。类型名.成员变量 用来访问成员变量。例如:对象指针->成员变量(成员函数)通过指针来访问成员。
2024-02-09 15:22:48
558
1
原创 在c++中最重要的语法:类。第一章,什么是类,如何认识类,怎么使用类?
class A{private:成员函数或者成员属性public:成员函数或者成员属性protected:成员函数或者成员属性A是类名,自己起名字这里强调三点:1、class是声明类的关键字。class后面跟的类名首字母一定要大写2、类中包括成员属性和成员函数。成员属性代表对象的属性,成员函数代表实现对象的行为3、private,public,protected都是类中的关键字,被称为访问限定符,它规定了类中成员的访问属性,这三个关键字可以已任意顺序出现,也可以多次出现。
2024-02-08 18:51:13
497
原创 c++ 类,第一篇章,初始化列表 (详细)
第一种,是在c++11中所提出的,强烈推荐大家使用,使用{}初始化被叫做列表初始化,可以防止数据由宽变窄或者数据丢失。例如我们使用整形初始化一个浮点数,那么它会自动抛弃小数部分,把它转换为整形数,这就叫做数据丢失。但是如果我们使用初始化列表,会直接杜绝这种情况的发生,因为使用初始化列表的时候,如果出现以上情况会直接报错,不允许这种情况的出现。初始化,就是在一个变量在创建的时候被赋值,一共有四种可能。一共四种写法,如上。
2024-02-07 13:51:51
517
1
原创 超详细c++讲解,new和delete的用法,他们真的很巧妙~
雀儿给大家说一个好方法就是,我们在创建单一变量的时候,可以int *p=new int[1]{给进去需要的值}。我们创建一个容量为1的数组,来顶替单一变量,这样不管我们后续开辟多少内存,都可以只调用带中括号的delete来解决。再次强调,new和delete的属性一定要一一对应,例如new了一个数组,我们就必须使用带有中括号的delete来释放,如果new了一个变量,就是用不带中括号的delete来释放。从而释放掉我们自己开辟的内存,否则程序是永远不会的释放掉这段内存,会出现内存泄漏。
2024-02-06 15:44:46
705
2
原创 超详细解说c++string类,c++的string怎么用,它到底有多好用?
这一块是c语言风格的字符串拷贝,其中,既需要考虑开辟的空间是否够,还需要不断地使用函数来实现。从而c++在此基础上,优化了字符串的使用。s3 = s1;s1 += s2;上面是c++风格的代码,为什么说c++字符串好用呢?因为它可以自动为你开辟合适的空间,自动为你扩充合适的空间!!这一点非常好用,完美解决了c语言字符串容易内存泄漏的问题。它添加了什么呢?
2024-02-04 23:44:29
1296
1
原创 超详细解说c++第四章,函数重载(函数多态)
可以让我们使用多个同名的函数,多态指的是多种形式的函数都可以,通常情况下我们叫它函数重载。函数重载的关键在于,函数列表的不同来让多种名字相同的函数同时存在。而同时存在的前提便是函数列表的不同 例如,参数的个数以及参数的类型之间的不同,都可以构成函数重载如图所示,四个函数名完全一样的函数在c++中完全可以这样写(这样的操作在c中是完全不行的,这也是c++比较好的一点)。这里做一个解释,什么叫做参数列表:int add;雀儿标注粗体的地方便叫做参数列表,只有参数列表有所不同,才能构成函数重载。
2024-02-03 20:30:23
629
2
原创 超详细的从零开始c++讲解,第三章。c++所增加的默认参数到底有多好用?代码注释详细讲解
在c++中允许函数拥有默认参数,也就是说,在函数定义和声明的时候,给一个参数或者多个参数指定的默认值,当一个函数有默认值的时候,就算使用的时候没有传进参数,也会直接调用默认参数进行运算。
2024-02-02 22:31:47
458
原创 超详细的从零开始 c++入门第二篇,什么是引用,怎么用引用。(超详细的解说)
从语法规则上来说指针变量是储存一个变量的地址,引用是一个实例的别名。指针变量需要分配内存,但是引用不需要。指针变量可以发生改变,可以储存不同的地址。引用再被定义的时候,就无法在改变了,只能是一个变量的引用,不能再去引用其他的变量。指针可以使空指针,但是引用可不能用空引用哦~每日金句:世上哪有什么成功,那只是努力的另一个代名词罢了。————雀儿。
2024-02-01 00:20:25
1727
1
原创 大家一起来学c++入门吧~
首先,它是面向对象的程序设计方法,从同类对象中抽象出共性,形成类。同类对象的数据原则上只能用本类提供的方法进行处理。类通过封装将接口与实现分离开来,通过接口与外界联系。
2024-01-30 22:34:15
489
2
原创 【蓝桥杯/入门】成绩分析,小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100的整数。请计算这次考试的最高分、最低分和平均分。
题目分析:从题目可以知道,我们需要找到最大值,最小值和平均值。最大值和最小值都比较轻松实现,使用c语言math库中来解决。而平均值我们则需要将所有的值加在一起,进行除法,保留小数,得到结果。整体的题目并不难,输出浮点数的时候一定要注意。,使用的时候要注意,但本题中并不影响。和我一起,从0学习c语言。本次一共收获到:math函数的使用,
2023-12-24 18:53:01
754
原创 【蓝桥杯/入门】C++实现:小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题
会感觉,好像挺轻松的,比如使用计数器或者对5取余,每5天进一次周末的做题数。但开始写的时候,会发现,如何正确的把天数打印出来变成了难点。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题?加油吧,和我一起,从入门学习C/C++吧,我们一同努力一同进步!而此时,如何正确把握天数的正确性就成了重中之重。循环和循环之间对天数的++非常重要!每一次小循环都需要判断刷的题够不够。,所以进入周末之后还需要一次。显然很容易实现,相比我们。
2023-12-17 22:38:17
849
4
原创 使用c语言,写出自定义函数来实现判断 年月日 是否正确(图文讲解)
顺序很重要,从日开始,我们依旧从大到小,31->30->29,一步一步。代码并不难,但是很麻烦,考虑的东西很多。(这里我们定义,只要年份<1900,就是错的)我们需要判断年月日,就需要一步一步的去判断,先从年开始,年->月->日。从大到小判断,先看年份是否符合。接下来,直接看下方代码吧!
2023-12-14 22:35:38
625
1
原创 蓝桥杯,p8597 翻硬币,使用c++实现
紧接着因为要翻相邻的,所以接下来第三个就被翻了,OK此时第二个已经完全相等了,但是!按照刚才的思路,我们继续翻第三个和第四个,结果第四个又不相等了。'*'是背面 'o'是正面,如果已知了初始状态和要达到的目标状态例如(**o**o*和*o****o)【等长字符串】我们从头开始对比,发现第一个是相等的,所以翻的时候一定不能把相等的翻了出去。每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?例如:*o****->****o*;一次只能翻相邻的两个。第五个,发现翻完之后,完全相等了!
2023-12-12 21:15:10
646
原创 初学者在c语言中,如何实现简单的快速排序(算法)
这只是理解快速排序的最基本的一部分,而后续的快速排序需要引入自己写的排序规则函数,会复杂很多(相比会比表中多一个参数,但是函数默认的规则是从小到大,所以我们平时用快排函数),可以省略规则。如图中给的参数即可。例如,{6,3,7,4,1,9,5,8}中,我们选择6作为基准数,让数列中所有大于6的数字集中在右边,小于6的集中在左边。最后把6放在最中间,利用递归不断循环即可搞定!第一步,选择一个基准数,通过从头到尾从尾到头方式,将其分为两个部分。详细教程我放在了下面的代码加注释的图中。
2023-12-10 15:42:57
1021
原创 (前缀和公式的理解)给a1->an,一共N个数字,有M次查询想,每次需要查询区间【L,R】的和,使用简便方法(前缀和公式)可以大幅度减少时间复杂度
使用前缀和解决,给a1->an,一共N个数字,有M次查询想,每次需要查询区间【L,R】的和,大幅减低时间复杂度,非常有用的一种算法!
2023-12-06 11:55:32
505
1
原创 求阶乘的和和1!+2!+3!+4!+...+n!,其中n由键盘读取,c语言实现,简单易懂。
这个的重点在于是否会求阶乘的每一项,最后只需把每一项加在一起就好了。
2023-12-04 19:17:59
425
原创 输入一个整数,要求 :(1) 求出它是几位数;(2) 分别输出每一位数字.例如123,输出1 2 3;(3) 按逆序输出各位数字,例如原数为 321, 应输出 1 2 3。
相比之前的的题,这个题多了一些要求。无妨,我们只需要定义数组,将这些数字装进去就OK了,其中涉及到如何将每一位的数字精确地打印出来。答案如上图,分行表示出来,一目了然‘
2023-12-03 20:26:20
442
1
原创 蓝桥杯原题c语言B组,既约分数
如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。例如,4/3,5/2,1/8,7/1都是既约分数。具体使用辗转相除法来找到最大公约数。
2023-12-02 01:17:18
690
原创 统计整形n是个几位数,如何使用c语言来实现
主要使用了c/c++中的循环语句的初级使用,使用while和for循环,实现对于任意整形n的位数提取,简单易懂。
2023-12-02 00:39:58
389
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人