- 博客(29)
- 收藏
- 关注
原创 c++初阶篇(八):类和对象(4)
内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使 用初始化列表初始化。,参见友元类的定义,内部类可以通过外部类的对象参数来访问外部类中 的所有成员。虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员。,不属于任何类,但需要在类的内部声明,声明时需要加。
2024-07-29 18:48:30
723
原创 c++初阶篇(七):类和对象(日期类)
return;else {cout << "非法日期" << endl;return 29;_month++;_year++;_month = 1;_month--;_year--;_month = 1;*this += 1;temp+=1;*this -= 1;temp-=1;return!return!return!
2024-07-29 18:38:24
252
原创 c++初阶篇(六):类和对象(3)
这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需。一个全局的赋值运算符重载,就和编译器在类中生成的默认赋值运算符重载冲突了,故赋值。内置类型成员变量是直接赋值的,而自定义类型成员变量需要调用对应类的赋值运算符。赋值运算符如果不显式实现,编译器会生成一个默认的。如果类中未涉及到资源管理,赋值运算符是否实现都可以;,返回引用可以提高返回的效率,有返回值目的是为了支持连续赋值。修饰类成员函数,实际修饰该成员函数。运算符重载只能是类的成员函数。,表明在该成员函数中。
2024-07-29 18:34:22
232
原创 c++初阶篇(五):类和对象(2)
6.如果类中没有申请资源时,析构函数可以不写,直接使用编译器生成的默认析构函数,比如。无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个。注意:在编译器生成的默认拷贝构造函数中,内置类型是按照字节方式直接拷贝的,而自定。通过前面构造函数的学习,我们知道一个对象是怎么来的,那一个对象又是怎么没呢的?是特殊的成员函数,需要注意的是,构造函数虽然名称叫构造,但是构造函数的主要任。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。但并不是什么都不存在的,编。
2024-07-29 18:27:28
625
原创 c++初阶篇(四):类和对象(1)
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分 号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者 成员函数。类的两种定义方式: 1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内 联函数处理。例public:private:int _year;int _month;int _day;4.
2024-07-29 18:03:58
610
原创 c++初阶篇(二):引用
类型& 引用变量名(对象名) = 引用实体;int a = 0;int& b = a;/<====定义引用类型注意:引用类型必须和引用实体是同种类型的3.
2024-07-21 11:05:34
909
原创 c进阶篇(五):结构体
int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化。
2024-07-04 15:24:13
457
原创 c进阶篇(三):字符串函数
strlen函数是一个标准库函数,用于计算以 null 结尾的字符串的长度,也就是字符串中实际字符的数量,不包括最后的 null 终止符\0。它定义在头文件中。str:指向以 null 结尾的字符串的指针。返回值:返回一个size_t类型的值,表示字符串str中的字符数,不包括结尾的 null 字符。
2024-07-01 21:50:31
950
原创 c进阶篇(二):指针(2)
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个。函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数。的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进。对于qsort函数的详细介绍可以参考网站:它是一个实现排序的库函数。下面就是关于回调函数的一个案例,指向函数指针数组的指针是一个。
2024-06-26 22:14:10
158
原创 c进阶篇(二):指针(1)
会把常量字符串存储到单独的一个内存区域,当 几个指针。指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化 不同的数组的时候就会开辟出不同的内存块。那数组指针应该是:能够指向数组的指针。这里有一道关于字符串指针的面试题,我们可以探讨下。是指针,指针指向的是一个函数,指向的函数无参。可见其结果是一样的,但是意义不同。整数的步长,指针解引用操作的时候的权限。指针是有类型,指针的类型决定了指针的。指向的是一个同一个常量字符串。能够指向浮点型数据的指针。能够指向整形数据的指针。
2024-06-25 23:05:49
615
原创 三子棋小游戏
判断胜负:游戏继续进行,直到有一方实现了目标,即在棋盘上形成了三个连续的自己的棋子,或者棋盘已满但没有玩家实现目标,则为平局。落子规则:玩家每次落子时,在棋盘上选择一个空格,并在该位置放置自己的棋子。玩家角色:游戏中有两个玩家,通常用 "#" 和 "*" 表示。游戏目标:目标是在棋盘上形成一条直线(横向、纵向或对角线)上有三个连续的自己的棋子。为了清晰的知道自定义函数,创建头文件:声明函数及引入库函数所需要的头文件。自定义函数实现功能:菜单,棋盘现状打印,玩家落子,电脑落子,判断输赢。
2024-05-20 17:24:23
304
1
原创 排序算法:冒泡排序
冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就交换它们的位置。重复地进行这样的比较和交换,直到整个数列都是有序的。具体来说,该算法从左向右不断比较相邻的两个元素,若左边元素大于右边元素,则交换它们的位置。经过第一轮比较后,最大的元素已经被交换到了数列的末尾。接下来,算法忽略掉已经排序好的末尾元素,对剩下的元素重复以上操作,直到所有元素都被排序好。冒泡排序的时间复杂度为O(n^2),其中n表示待排序数列的长度。
2024-05-19 21:11:09
266
1
原创 求斐波那契数列
斐波那契数列是一个经典的数学问题,其规律是每个数字都是前两个数字之和。数列通常以0和1开始,后续的数字则为相邻两个数字的和。因此,斐波那契数列的前几个数字依次为0, 1, 1, 2, 3, 5, 8, 13, 21, 34,依此类推。
2024-05-19 20:30:45
391
1
原创 c基础篇(五):递归与迭代
在C语言中,递归是一种函数调用自身的技术。通过递归,可以解决需要重复执行相同任务或者解决问题的情况。递归函数通常包含两个部分:基本情况和递归情况。基本情况是递归终止条件,当满足这个条件时,递归将停止。递归情况描述了函数如何通过调用自身来解决更小规模的问题,并逐步接近基本情况。
2024-05-19 20:14:56
282
1
原创 c基础篇(四):函数
自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己来设计。这给程序员一个很大的发挥空间。statement;//语句项ret_type 返回类型fun_name 函数名para1 函数参数。
2024-05-11 23:13:33
652
1
原创 查找算法:折半查找
折半查找是一种在已排序的数组或列表中查找特定元素的算法。它通过反复将待查找区间分成两部分,并确定目标值可能在哪一部分中,从而将查找范围缩小一半。这种算法的时间复杂度为 O(log n),其中 n 是数组或列表的长度。这种算法的优势在于每次比较都能排除掉一半的数据,因此效率很高,特别是对于大型数据集。例,在1,2,3,4,5,6,7,8中查找数字5。
2024-05-11 16:57:00
522
1
原创 c语言实现猜数字游戏
主要由三个选择语句实现。键盘输入数字,对输入数字与生成的随机数进行判断,当输入数随机数,输出“猜大了”;输入数=随机数,输出“猜对了”自定义菜单函数,选择进行游戏还是退出,利用printf函数打印出菜单样式,代码实现如下。在主函数中调用菜单函数后,键盘输入选择,利用Switch语句实现选择,调用游戏函数。由系统随机生成0~100之间的随机整数,用户来猜。
2024-05-09 20:57:09
448
原创 c基础篇(三)指针.数组.结构体
数据类型 * 变量名 = 地址。int a = 10;//在内存中开辟一块空间//这里是对变量a,取出它的地址,可以使用&操作符。//a变量占用4个字节的空间,这里是将a的4个字节的第一个字节的地址存放在p变量中,p就是一个之指针变量。例如声明一个整形数组//声明一个包含5个整数的数组//创建一个包含5个整数的数组,并将它们依次初始化为1、2、3、4/5。声明格式如下struct 结构体名称 {数据类型1 成员1;数据类型2 成员2;// 更多成员...Studentid(整型)、
2024-05-04 20:31:29
1104
原创 C基础篇(二):操作符、关键字、转义字符
define是C语言和C++中的预处理指令,用于创建符号常量和宏。它的作用是在源代码中指定一个标识符的文本替换。语法格式如下,其中,标识符是要定义的符号常量或宏的名称,而值可以是一个常量、表达式、函数等。#define 标识符 值定义符号常量。了一个名为PI的符号常量,它的值为3.14159。在代码中使用时,所有的PI都会被替换为3.14159。#define还可以用来定义宏,宏是一种类似函数的文本替换。这个宏可以用来计算一个数的平方,例如SQUARE(5)会被替换为(5 * 5),结果是25。
2024-05-03 00:03:28
62
原创 vs studio的下载安装及使用教程
Visual Studio 是微软公司开发的一款集成开发环境(IDE),用于软件开发和应用程序的调试。它提供了丰富的功能和工具,帮助开发者在各种编程语言中编写、调试和部署代码。以下是 Visual Studio 的一些主要特性和功能:1.多语言支持:Visual Studio 支持多种编程语言,包括但不限于 C#、C++、Visual Basic、Python、JavaScript、TypeScript、F# 等。这使得开发者可以在同一个环境中进行不同语言的开发。
2024-04-30 13:39:13
3852
1
原创 c++学习之旅
希望通过对c++系统性的学习,可以找到一份满意的工作。学习的顺序是:c语言,数据结构,c++语言,linux,my sql,项目训练。除了这些基本内容,拓展学习一下常规算法,比如贪心算法,递归与搜索算法动态规划算法等等,还有QT软件的一些简单使用。给自己安排每天三到五小时的基础学习,一两个小时的一些代码训练,巩固一下知识。打算整理日常笔记,简单代码分享给大家。欢迎大家一起监督学习。本人是物联网工程专业大四的学生,准备开始学习c++。
2024-04-29 21:00:16
66
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人