cpp构造函数的分类和调用
02-2 构造函数的分类和调用 构造函数:用于初始化对象。 构造函数的语法:类的名称() {} 构造函数没有返回值,但是也不能写void。 函数的名称与类的名称相同 构造函数可以有参数,因此可以发生重载(函数重载:相同的函数名称,不同的执行内容。可参考笔记。) 程序在调用对象的时候会自动调用构造,无…
cpp构造函数和析构函数
02-1 构造函数和析构函数 对象的初始化和清理是两个非常重要的安全问题。其中,构造函数用于初始化;析构函数用于清理。 一个对象或者变量没有初始状态,对其使用的后果是未知的。 使用完一个对象或者变量,没有及时清理也会造成一定的安全问题。 c++中使用构造函数和析构函数来解决这种安全问题。这两个函数会…
cpp对象的初始化和清理
02-0 对象的初始化和清理 像我们平常生活中购买的电子产品都会存在出厂设置,在某一天我们不需要使用的时候也会删除部分个人数据来保证数据安全。 c++中面向对象的事项来源于生活,每个对象都会有初始设置以及对象销毁前的数据清理设置。
cpp类外写成员函数
01-5 类外写成员函数 在 cpp 中,写一个类的时候,可以在类外写成员函数的具体实现代码。但是需要在类内声明 #include <iostream> using namespace std; class test { public: int print(); }; int test:…
练习2-点和圆的关系
01-4-2 练习2-点和圆的关系 设计一个圆类(Circle),设计一个点类(Point)。计算点和圆的关系 #include <iostream> #include <string> #include <math.h> using namespace std;…
练习1-设计立方体类
01-4-1 练习1-设计立方体类 设计一个立方体类(Cube) 求出立方体的展开图面积和体积 分别利用全局函数和成员函数判断两个立方体是否相等。 #include <iostream> using namespace std; //设计一个立方体类(Cube) //求出立方体的展开图面…
cpp-成员属性设置为私有
01-3 成员属性设置为私有 在实际使用、开发之中,一般都会把成员属性设置为私有,也就是private。这样会产生如下的好处: 优点 1:将成员属性设置为私有,可以自己控制读写权限。 优点 2:对于写权限,我们可以检测数据的有效性。 可以自己控制读写权限。 #include #include usi…
cpp-strcut和class的区别
02 strcut和class的区别 在 c++中,封装的语法是:class 类的名称 {访问权限: 属性 / 行为};。当然,也可以struct 类的名称 {访问权限: 属性 / 行为}; strcut和class的唯一区别就是:默认访问权限不同。 strcut:默认权限为公共权限,即:publi…
cpp封装访问权限
01-2 封装的意义-访问权限 在学习 01-1 的时候,我们已经了解过封装的意义了: 将属性和行为作为一个整体。 将属性和行为使用权限进行管控。 前者我们已经学习过了,定义一个类,这个类里面有访问权限、属性和行为。其语法是:class 类的名称 {访问权限: 属性 / 行为};。 现在,我们学习的…
cpp封装的意义
01-1 封装的意义 封装是c++面向对象的三大特性之一。(复习一下,c++面向对象的三大特性:封装、继承、多态) 封装的意义: 将属性和行为作为一个整体用于表示生活中的事物。 将属性和行为使用权限进行管控。 提示:对象必须要有属性和行为,缺一不可。 当然,这篇笔记记录的时候封装的意义,对于其的权限…
cpp类与对象
00 类与对象 这是c++中最重要的内容:类和对象。 在c++中,面向对象这个思想下,有三大特性:封装、继承、多态。 c++中认为万物皆可对象,对象上有其属性和行为。 我们可以举几个例子: 人可以作为一个对象,其属性有:姓名、年龄、身高、体重,行为有走路、跑步、干饭等等。 车可以作为一个对象,其属性…
cpp-函数重载-注意事项
03-2 函数重载-注意事项 引用作为函数重载的条件 #include using namespace std; void func(int& a) { cout
cpp函数重载-概述
03-1 函数重载-概述 作用:函数名称可以相同,提高复用性。 这是 c++中非常重要的知识点。 简单来说,就是 c++中,函数名称可以相同,但是需要满足一些条件。 函数重载的需要满足的条件: 函数在同一个作用域下 函数的名称相同 函数参数的类型不同,或者个数不同,或者顺序不同。 注意:函数的返回值…
cpp函数占位参数
02 函数占位参数 在 c++中,函数的形式参数列表中可以由占位参数,用来做占位。调用函数的时候必须填补这个位置。 语法:返回值类型 函数名称 (数据类型) {} 在现阶段使用函数的占位参数意义不大,但是后面的内容会遇到这样的使用内容。 占位参数:只要在形参列表写上数据类型即可。 #include …
cpp函数的默认参数
01 函数的默认参数 在c++的函数中,函数的形式参数列表是可以由默认数值的。 语法:返回值类型 函数名称 (参数 = 默认值) {}。 举个例子: 之前我们写一个函数是这样写的。 #include <iostream> using namespace std; int func1(in…
cpp引用和指针的关系
07 引用和指针的关系 引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。但是指针可以被指向一个非法的内存空间(野指针)。 引用: int a = 10; int& b = a; 指针: int a = 10; int* p = &a; p = (int*…
cpp常量引用
06 常量引用 作用:常量引用主要用于修饰形式参数,防止进行误操作 当然,说到常量,一定会想到const。 在函数形参列表中,可以添加const修饰形式参数,防止形式参数改变实际参数。 #include <iostream> using namespace std; void p(int…
cpp引用的本质
05 引用的本质 本质:引用的本质在 c++中,就是一个指针常量。 对于指针而言,指针常量的指针的指向是不可以修改的。 复习:指针常量:指针的指向是不可以修改。常量指针:使用指针不可以修改数据值。 #include <iostream> using namespace std; int …
cpp引用做函数的返回值
04 引用做函数的返回值 作用:引用可以作为函数的返回值 注意:不要返回局部变量的引用 作用:函数调用作为左值 我们分开理解一下: 引用可以作为函数的返回值,但是不要返回局部变量的引用。 如何将引用作为函数的返回值: int& test1(); int main() { int& ref = tes…
cpp引用做函数参数
03 引用做函数参数 作用:函数传递参数的时候,可以使用引用来让形式参数修饰实际参数 优点:可以简化指针修改实际参数 我们可以回顾一下目前学习过的函数传递方式: 值传递:实参不会被修改,形参不可以修饰实参 地址传递:实参可以被修改,形参可以修饰实参。但是需要传递地址。 但是,我们使用引用的话,形参也…
cpp引用注意事项
引用注意事项 引用有一些注意事项,请务必关注: 引用必须初始化 引用在初始化后,就不可以改变了。 如何理解? 引用必须初始化 如之前的笔记所言。如果创建一个int a = 10;可以如下的操作: int a; a = 10; 那么在这里,a最开始是没有初始值的。而10是后续赋值赋出来的。 但是在引用…
cpp引用的基本使用
引用的基本使用 这个是 c++中非常重要的技术 作用:给变量起别名 语法:数据类型 &别名 = 原名 #include <iostream> using namespace std; int main() { int a = 10; int& b = a; cout &l…
cpp-new操作符
03 new操作符 在 c++中,可以使用new操作符在堆区开辟数据。 堆区数据的开辟:由开发手动开辟,手动释放。释放使用操作符delete。如果不释放,将会在程序运行结束之后由操作系统自动释放。 语法:创建:new 数据类型 删除:delete 地址 利用new创建的数据,会返回这个数据对应类型的…
程序运行后
02 程序运行后 栈区: 由编译器自动分配、释放。用于存放函数的参数值、局部变量、形参数据等。 注意:不要返回局部变量的地址,因为栈区开辟的数据由编译器自动释放。 #include using namespace std; //栈区数据的注意事项 //栈区数据由编译器管理 //注意:不要返回局部变量…
程序运行前
01 程序运行前 在程序编译后,生成了.exe的可执行文件(当然这个 exe 是 windows 环境下的可执行程序了......),未执行程序前分为两个区域: 代码区 存放 cpu 执行的机器指令:也就是改为二进制(0101这样的)的代码(写完的代码会变成机器阅读的二进制)。 代码区是共享的:共享…
cpp内存分区模型
01 内存分区模型 c++在程序执行的时候,会将内存划分为4 个区域 代码区 :(程序运行前)存放函数体的二进制代码,由操作系统进行管理。 比如说写的cout << "hello" << endl;(也就是代码);写的注释等等,都在代码区。 全局区:(程序…
cpp随机数
随机数 c++里面随机生成数字的方法:rand()%100 ->生成一个 0-99 的数字。如果是rand()%100 + 1 ->生成一个 1-100 的数字。 发现一个问题,每次的随机数都是一样。我们要修改一下随机数的种子 srand((unsigned int)time(NULL)…
cpp开根
开根 c++中开根号需要其他的头文件 #include <math.h> 然后使用函数sqrt(x);即可。 比如: #include <iostream> #include <math.h> void main() { double a = 16.0; b = …
luogu B2050 三角形判断
三角形判断 B2050 三角形判断 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 给定三个正整数,分别表示三条线段的长度,判断这三条线段能否构成一个三角形。 输入格式 输入共一行,包含三个正整数,分别表示三条线段的长度,数与数之间以一个空格分开。(三条边的长度均不超过 …
luogu B2040 判断是否为两位数
判断是否为两位数 题目描述 判断一个正整数是否是两位数(即大于等于 $10$ 且小于等于 $99$)。 输入格式 一个正整数,不超过 $1000$。 输出格式 一行。若该正整数是两位数,输出 $1$,否则输出 $0$。 样例 #1 样例输入 #1 54 样例输出 #1 1 #include <…
luogu B2037 奇偶数判断
奇偶数判断 题目描述 给定一个整数,判断该数是奇数还是偶数。如果 $n$ 是奇数,输出 odd;如果 $n$ 是偶数,输出 even。 输入格式 输入仅一行,一个整数 $n$。 输出格式 输出仅一行,如果 $n$ 是奇数,输出 odd;如果 $n$ 是偶数,输出 even。 样例 #1 样例输入 #…
luogu B2020 分糖果
分糖果 B2020 分糖果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 某个幼儿园里,有 $5$ 位小朋友编号依次为 $1,2,3,4,5$ 他们按照自己的编号顺序围坐在一张圆桌旁。他们身上有若干糖果,现在他们玩一个分糖果游戏。从 $1$ 号小朋友开始,将自己的糖果均…
luogu B2002 Hello,World!
Hello,World! 题目描述 编写一个能够输出 Hello,World! 的程序。 提示: 使用英文标点符号; Hello,World! 逗号后面没有空格。 H 和 W 为大写字母。 输入格式 输出格式 样例 #1 样例输入 #1 无 样例输出 #1 Hello,World! #include…
cpp结构体练习2
08-2 结构体练习2 设计一个英雄的结构体,包括成员姓名,年龄,性别;创建结构体数组,数组中存放5名英雄。 通过冒泡排序的算法,将数组中的英雄按照年龄进行升序排序,最终打印排序后的结果。 五名英雄信息如下: {"刘备",23,"男"}, {"关羽&…
cpp结构体练习1
08-1 结构体练习1 描述: 学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下 设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值,最终打印出老师数据以及老师…