
c++
文章平均质量分 55
Felaim
Hey, you're not a nobody. You're a somebody.
展开
-
c语言入门到c++使用高手:深入学习C++之类 (五)
第三章 类第五节 拷贝构造函数默认情况下,类对象的拷贝是每个成员变量逐个拷贝如果一个类的构造函数的第一个参数,是所属类类型的引用,如果还有其他额外参数,那么这个额外的参数都有默认值,则这个构造函数就叫做拷贝构造函数,函数默认参数必须放在函数声明中,除非该函数没有函数声明拷贝构造函数:会在一定的时机,被系统自动调用拷贝构造函数又叫做复制构造函数1. 拷贝构造函数建议拷贝构造函数第一个参数总是带着const拷贝构造函数一般不要声明成explicit成员变量逐个原创 2020-06-23 19:54:02 · 367 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之类 (四)
第三章 类第四节 类内初始化,默认构造函数, =default1. 类相关非成员函数可以将函数声明放在对应类的头文件中,但是不放在类中,函数实现放在对应类的源文件中//在Time.h中添加//普通函数声明void WriteTime(Time &mytime);//在Time.cpp中添加函数定义//普通函数,不是类的成员函数void WriteTime(Time &mytime){ std::cout << mytime.Hour <<原创 2020-06-23 19:49:08 · 402 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之类 (三)
第三章 类第三节 inline,const,mutable, this, static1. 在类定义中实现成员函数inline类内的成员函数实现也叫做类内的成员函数定义直接在类的定义中实现的函数直接被系统认为是内联函数(inline),但是能不能够成功,取决于编译器本身#ifndef LESSION_PART_TWO_TIME_H#define LESSION_PART_TWO_TIME_Hclass Time {private: // 私有成员变量不能在外部直接用成员原创 2020-06-15 19:43:22 · 341 阅读 · 2 评论 -
c语言入门到c++使用高手:深入学习C++之类 (二)
第三章 类第二节 构造函数详解, explicit, 初始化列表1. 构造函数在类中,有一种特殊的成员函数,他的名字和类名相同,我们在创建类的对象的时候,这个特殊的成员函数就会被系统自动调用,这个成员函数就叫做"构造函数",因为构造函数会被系统自动调用,我们可以理解构造函数的目的就是初始化类对象的数据成员特点构造函数没有返回值(没有void),这也是构造函数的特殊之处不可以手工调用构造函数,否则编译就会出错正常情况下,构造函数应该被声明为public,因为我们创建一个对原创 2020-06-15 19:35:15 · 396 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之类 (一)
第三章 类第一节 成员函数,对象拷贝,私有成员1. 综述类是我们自己定义的数据类型(新类型)设计类时要考虑的角度站在设计和实现者的角度来考虑站在使用者的角度来考虑父类,子类2. 类基础一个类就是用户自己定义的数据类型,把类想像成命名空间,包着一堆东西(成员函数,成员变量)一个类的构成:成员变量,成员函数(有许多特殊成员函数,后续慢慢讲解)访问类成员时,如果是类对象,我们就使用对象名.成员名来访问成员,如果是指向对象的指针,我们使用指针名->原创 2020-06-09 19:52:39 · 1313 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(十)
第二章 基本语言第十节 类型转换:static_cast、reinterpret_cast等1.隐式类型转换系统自动进行,不需要程序开发人员介入#include <iostream>using namespace std;int main() { // 把小数部分截掉,隐式类型转换 int a = 3 + 46.6; float b = 3 + 46.6; cout << a << " " << b <原创 2020-05-26 19:40:04 · 353 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(九)
第二章 基本语言第九节 迭代器精彩演绎,失效分析及弥补、实战1. 迭代器简介迭代器是一种遍历容器内元素的数据类型,这种数据类型有点像指针,我们理解为迭代器用来指向容器中的某个元素string, vector,[], 很少用[],更常用的访问方式就是用迭代器(更通用)通过迭代器,我们可以读容器中的元素值,读string中的每个字符,还可以修改某个迭代器所指向的元素值++/–list, map,尽量学会用迭代器来访问容器中的元素2. 容器的迭代器类型 vector<原创 2020-05-26 19:36:20 · 413 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(八)
第二章 基本语言第八节 vector类型介绍1. vector类型简介标准库:集合或者动态数组,我们可以把若干对象放在里边vector能把其他对象装进来,也称为容器#include <vector>// 表示的是vint里边保存的是int型数据(int型对象) vector<int> vint;// <int>:模板, vector本身就是类模板,<int>实际上就是类模板的实例化过程vector 当成类型原创 2020-05-26 19:31:32 · 433 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(七)
第二章 基本语言第七节 string类型介绍1. 前言c++标准库: string, vectorstring: 可变长字符串的处理, vector是一种集合或者容器的概念2. string类型简介c++标准库中的类型, 代表一个可变长字符串string这个类型可以看成一个类类型(类似于struct)3. 定义和初始化string对象5种初始化方式#include <iostream>#include <string>using原创 2020-05-26 19:27:41 · 368 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(六)
第二章 基本语言第六节 函数新特性、内联函数、const详解1. 函数回顾与后置返回类型函数定义中,形参如果在函数体内用不到的话,则可以不给形参变量的名字,只给其变量函数声明又叫函数原型把函数返回类型放到函数名字之前,这种写法就是前置返回类型c++11中引入了一种新的写法,后置返回类型:就是在函数声明和定义中,把返回类型写在参数列表之后,前面放auto,表示函数返回类型放到参数类表之后#include <iostream>#include <cstri原创 2020-05-26 19:24:04 · 445 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(五)
第二章 基本语言第五节 结构、权限修饰符、类简介1. 结构回顾结构,自定义的数据类型#include <iostream>#include <cstring>using namespace std;typedef struct student { int number; char name[100];} student;//形参用结构变量void func(student tmpstu) { tmpstu.number = 200原创 2020-05-26 19:18:02 · 292 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(四)
第二章 基本语言第四节 范围for、new内存动态分配、nullptr1. 范围for语句用于遍历一个序列#include <iostream>using namespace std;int main() { int v[]{12, 13, 15, 17, 88}; // 数组v中每个元素,依次放入x中并打印x的值,把v中每个元素的值拷贝到x中,打印x的值 for (auto x:v) { cout << " x: " &l原创 2020-05-26 19:14:42 · 349 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(三)
第二章 基本语言第三节 auto、头文件防卫、引用、常量1. 局部变量及初始化随时用到,随时定义#include <iostream>int main() { // i的作用域仅仅限制 在for循环内 for (int i = 0; i < 10; i++) { std::cout << "i = " << i << std::endl; } return 0;}定义的时候初始化原创 2020-05-26 19:10:41 · 347 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(二)
第二章 基本语言第二节 命名空间简介,基本输入输出精解1. 命名空间概念简介场景:如有一个大型项目,分给多人写代码,会出现同名实体(同名的函数,同名的变量,同名的类)命名空间:就是为了防止名字冲突引入的机制,系统中可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名可以把这个命名空间看成一个作用域,在这个命名空间里定义函数,跟另外一个命名空间里定义的函数数即使同名,也互不影响命名空间定义namespace 命名空间变量名{ ...}命名空间的定义可以不原创 2020-05-26 19:06:49 · 632 阅读 · 0 评论 -
c语言入门到c++使用高手:深入学习C++之基本语言(一)
第二章 基本语言第一节 语言特性,工程构成,可移植性1. 语言特性:过程式,对象式程序设计面向过程式的程序设计(过程式的程序设计:c语言程序设计):从上到下,逐步求精,按顺序的一步一步把问题解决结构: 学生, 名字, 性别, 成绩要使用结构,定义一个属于该结构的变量基于对象的程序设计和面向对象的程序设计c++中,我们把结构叫做类, 结构 == 类c++中,当我们使用到类的话,就不叫定义结构变量,而是叫定义对象, 结构变量 == 对象在类中可以定义成员变量,原创 2020-05-26 19:01:36 · 425 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之文件(三)
第十二章 文件第三节 将结构体写入二进制文件再读出1. 将结构体写入二进制文件// fwrite(buffer, size, count, fp)// buffer:指针/地址,要写到文件中去的数据就在这个地址里保存着// size: 要写入多少个size字节的数据项// fp:文件指针//返回值:如果fwrite失败,则返回0,否则返回count值#include <iostream>#include <cstring>// 为了效率,会凑成8字节,进行内存原创 2020-05-11 19:45:01 · 303 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之文件(二)
第十二章 文件第二节 文件的开,关,读,写实战操练1. 文件的打开文件在读或写之前必须要打开,在读或写之后必须要关闭fopen:文件打开函数,fopen函数的调用方式FILE *fp; // FILE是个结构,fp是指向结构FILE的指针变量fp = fopen(文件名, 使用的文件的方式) //文件名和使用文件的方式都是字符串“”fp = fopen("a.txt", "r"); //打开a.txt文件, 使用的打开方式为只读// fp现在就指向了打开的a.txt文件// s原创 2020-05-11 19:43:26 · 331 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之文件(一)
第十二章 文件第一节 文件概述,文本,二进制文件区别1. 文件概述文件: 看成字符序列(字符流), “abcdef”根据数据组织形式,可以把文件分为两种: ASCII文件(文本文件),二进制文件.但是对于计算机来说,都是二进制文件,只有人类才把文件分成文本和二进制文件ASCII文件(文本文件),每一个字节,存放一个ASCII码,代表一个字符,这种文件一般你打开就能看懂里面的文件二进制文件: 把内存中的数据按照其在内存中的存储形式原样输出到磁盘上存放文件对于计算机来讲原创 2020-05-11 19:40:11 · 287 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之位运算(二)
第十一章 位运算第二节 位运算的具体应用1.位运算的一个具体范例需求: 一个游戏有10个任务,记录10个任务是否完成, 用0标记未完成任务, 用1标记完成任务// 常规想法int task[10] = {0};task[0] = 1; //任务1完成,把下标0这个元素置成1如果记录10条数据在一个数据库中,是非常浪费空间的针对这个问题,有两个前提条件每日任务有10个只需记录该任务是否完成, 0表示未完成, 1表示完成,只有两个任务状态unsigned int task原创 2020-05-10 19:08:39 · 300 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之位运算(一)
第十一章 位运算第一节 位的概念以及位运算符介绍1. 位的概念一个int型数据是占4个字节内存,一个char型数据占用1个字节内存一个字节是由八个位组成,是由二进制位,最左边称为最高位,最右边称为最低位每一个二进制位的值是0或者1(二进制数只有0,1,两个数字,没有其他数字): 00000000-11111111 ==> 0-255int abcd; //占四个字节// int能表示的最大二进制数是多少呢?11111111, 111111111, 11111111, 1原创 2020-05-10 18:49:13 · 272 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之结构体与共用体(三)
第十章 结构体与共用体第三节 共用体,枚举类型,typedef1. 共用体又叫联合把几种不同类型的变量存放到同一段内存单元(同一个内存地址开始的单元中),几个变量共同占用同一段内存的结构,就叫共用体定义形式:union 共用体名{ 成员列表}变量列表实例一union myuni{ int carnum; char cartype; char cname[60];}a,b,c;//将共用体定义和变量定义放在一起实例二uni原创 2020-05-10 18:46:21 · 461 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之结构体与共用体(二)
第十章 结构体与共用体第二节 结构体数组,结构体指针1. 结构体数组单独写成一行来定义struct student stu[3];定义结构的时候顺便定义结构体数组struct student { int num; //学号 char name[100]; //姓名 int sex; //性别,女:0, 男:1 int age; //年龄 char addre原创 2020-05-10 18:43:57 · 355 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之结构体与共用体(一)
第十章 结构体与共用体第一节 结构体变量定义,引用,初始化1. 结构体概述数据类型: int, float, char, int a[10], float b[100]假设一个学生,叫Felaim, 26岁, 女, …要存储很多信息,在这种情况下我们就需要使用结构体结构体: 结构体也是一种数据类型,被叫做数据结构体类型,换句话说结构体就是把多种不同类新的数据类型组织到一起,目的是能够表达更加丰富的信息结构体定义的方法struct 结构体名{ //成员列表(可以多个原创 2020-05-10 18:40:44 · 399 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(九)
第九章 指针第九节 指针数组, 指针的指针, main函数参数, 小节1. 指针数组概念回顾一个数组,其元素均为指针类型数据,称为指针数组,指针数组的定义形式:类型标识符 *数组名[数字长度说明] //int *p[4],每个数组元素都可以看作是一个指针变量,都可以指向一个指针变量数组指针 int (*p)[4],指向一维数组的指针变量#include <io...原创 2020-05-04 15:46:59 · 443 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(八)
第九章 指针第八节 函数指针和返回指针值的函数1. 用函数指针变量调用函数一个函数在编译的时候,系统会被这个函数分配一个入口地址,这个入口地址被称为函数的指针.我们可以定义一个指针指向该函数,然后,我们通过该指针变量调用该函数每个函数在可执行文件执行时都会占用一段内存单元,它们有一个起始地址,就可以用一个指针变量来指向这个函数,从而通过指针变量来调用对应的函数#inclu...原创 2020-05-04 15:43:11 · 276 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(七)
第九章 指针第七节 字符串的指针和指向字符串的指针变量1. 字符串表示形式c语言中对字符串常量有特殊的处理,在内存中开辟出一段类似祖父数组的东西来存放字符串常量所以,"I am Felaim"是存在于内存中的,并且有一个内存地址#include <iostream>int main() { // 把常量字符串拷贝到数组中去, 内存地址不相同 char...原创 2020-05-04 15:41:22 · 324 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(三)
第九章 指针第三节 变量的指针和指向变量的指针变量-21. 指针变量作为函数参数函数的参数可以是指针类型,作用是将一个变量的地址传递到一个函数中去c语言中,实参变量个形参变量之间数据传递是单向的值传递,指针变量作为函数参数也要遵循这个原则例子1#include <iostream>void swap(int *pdest1, int *pdest2) {...原创 2020-05-04 11:50:48 · 310 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(六)
第九章 指针第六节 数组的指针和指向数组指针的指针变量-31. 回顾二维数组和多维数组的概念a[3][4]二维数组a[7][8][9], 三维数组, 排列方式a[0][0][0]…a[0][0][9], a[0][1][0]…最右侧维度变化最快,最左侧变化最慢多维数组以此类推…2. 指向多维数组的指针和指针变量的探究#include <iostream>...原创 2020-05-04 15:35:30 · 340 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(五)
第九章 指针第五节 数组的指针和指向数组指针的指针变量-21.数组名作为函数参数如果一个实参的数组,想在函数中改变此数组的元素的值,实参和形参的对应关系可以有4种实参和形参都是数组名a是实参数组首地址,ba是形参数组首地址, a和ba共用一段内存,也就是说,在调用changevalue函数时,a和ba指的是同一个数组#include <iostream>void c...原创 2020-05-04 15:32:30 · 282 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(四)
第九章 指针第四节 数组的指针和指向数组指针的指针变量-11. 指向数组元素的指针变量的定义和赋值数组指针 是指 数组开始的地址,数组元素的指针就是数组元素的地址只要是数组,那么数组元素的内存一定是挨着的#include <iostream>int main() { int a[5] = {5, 6, 7, 8, 9}; //能够引用的是a[0]-a[...原创 2020-05-04 11:54:00 · 261 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(二)
第九章 指针第二节 变量的指针和指向变量的指针变量-11. 指针变量的定义变量的指针就是变量的地址,我们可以定义一个指向变量的指针变量,这种指针变量,我们在定义的时候,会引入一个*,在定义的语句中,表示"这是一个指针变量"指针变量定义的一般形式: 类型标识符 *标识符 ,标识符就是指针变量的名字int i //普通变量//指针变量定义是,变量名前有个*,这个需要区别in...原创 2020-05-04 11:48:51 · 302 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之指针(一)
第九章 指针第一节 指针基本概念详解1. 前提知识静态存储区,动态存储区,不同变量会保存在不同的存储区里有些变量的内存是在编译的时候分配的,有些变量的内存是在程序运行时分配的变量都是会占用一段内存空间的(int,float,double,char占用一定内存空间,使用sizeof(类型))#include <iostream>int main() {...原创 2020-05-04 11:44:44 · 323 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之编译预处理(二)
第八章 编译预处理(二)第二节 文件包含和条件编译1. 文件包含属于编译中预处理部分,将另外一个文件的内容包含到本文件中,通过include命令来实现一般格式: #include “文件名”,#include其他.h文件(即头文件)我们常常把宏定义和函数说明,一些其他的include的命令,以及其他一些全局变量的外部声明等放在头文件中说明很多公共修改都可以放在.h...原创 2020-04-22 19:13:27 · 370 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之编译预处理(一)
第八章 编译预处理(一)一个项目可以通过编译链接,最终形成一个可执行文件,每个源文件(.cpp),都会单独编译,编译成一个目标文件(.o也可能是.obj,扩展名和操作系统有关),系统把这些.o文件进行链接,最终形成一个可执行文件编译干了些什么?笼统的说:词法\语法分析,目标文件(临时生成)的生成,优化之类的详细的说预处理编译:词法,语法分析,目标代码生成,优化,产生一...原创 2020-04-22 19:10:05 · 414 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(六)
第七章 函数第六节 变量的存储和引用,内部函数和外部函数1. 变量的存储类别从变量存在的时间(生存期)角度来划分,我们可以把变量分为:静态存储变量和动态存储变量,从而引出了静态存储方式和动态存储方式静态存储变量:在程序运行期间分配固定存储空间的变量,这种分配变量的方式就叫做静态存储方式动态存储变量:在程序运行期间动态分配存储空间的变量,这种分配变量的方式就叫做动态存储方式...原创 2020-04-21 19:51:23 · 393 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(五)
第七章 函数第五节 局部变量和全局变量1. 局部变量在一个函数内部定义的变量叫局部变量,只在本函数范围内有效,也就是说,只有在函数内才能使用它们,在函数外部是不能使用这些变量的不同的函数可以使用相同的变量名,互相并不干扰(看内存地址并不相同)形式参数,也是个局部变量,只在对应函数中有效#include <iostream>void func1(int tm...原创 2020-04-21 19:49:10 · 341 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(四)
第七章 函数第四节 数组作为函数参数1. 数组元素作为函数实参#include <iostream>int whichmax(int x, int y) { return (x > y ? x : y);}int main() { std::cout << "Hello, World!" << std::endl; ...原创 2020-04-21 19:47:35 · 340 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(三)
第七章 函数第三节 函数递归调用精彩演绎1. 函数递归调用的定义-调用栈:一块系统分配给这个程序中有特殊用途的内存,存储形式参数,函数调用关系,局部变量…这段内存是有限的,一旦超过这个内存大小,就会出现崩溃-定义:在函数体内调用自己的函数,执行函数将反复调用自己的函数,每调用一次就进入一个新层下面的算法会出现死循环,所以自己调用自己的方式,所以必须要定义出口(递归结束条件),使得递归调用...原创 2020-04-21 19:45:27 · 499 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(二)
第七章 函数第二节 函数调用方式以及嵌套调用1. 函数调用的一般形式注意严格区分函数调用和函数定义这两个概念区别函数调用的一般形式: 函数名(实参列表);若调用没有形参的函数,实参列表可以没有,但括号不能省略,如果实参列表包含多个参数,则各个参数之间用逗号分开,对于函数中,如果形参包含多个参数,用逗号分开实参,形参个数要相等,类型要一致,按顺序对应,一一传递2. 函数调用...原创 2020-04-21 19:43:56 · 361 阅读 · 0 评论 -
c语言入门到c++使用高手: c语言入门之函数(一)
第七章 函数第一节 函数的基本概念和定义1. 函数的基本概念a) 一个文件里有有一个或多个函数组成,这个文件我们一般成为源程序b) 大项目源程序不能都放一个文件里,所以一个c项目是由一个或多个源程序组成,这些函数可以分别放到这些源程序文件里并被所有的源程序文件共用c) C程序从main函数开始执行,最终也是在main函数中结束整个程序的运行d) 函数里不能套函数,但是函...原创 2020-04-21 19:42:06 · 368 阅读 · 0 评论