摘要:
C++ 命名空间 假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。 同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一 阅读全文
posted @ 2023-10-11 17:39
[BORUTO]
阅读(32)
评论(0)
推荐(0)
摘要:
大家都知道,在 C++ 中可以通过 typedef 重定义一个类型: typedef unsigned int uint_t; 被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。因此,下面这样将不是合法的函数重载: void func(unsigned int); void fu 阅读全文
posted @ 2023-10-11 17:20
[BORUTO]
阅读(178)
评论(0)
推荐(0)
摘要:
《C++11是什么》一节中提到,在 C++98/03 标准的基础上,C++11 标准对 C++ 语言增添了约 140 个新特性。本节要讲的右值引用就是众多新特性中的一个,同时也是最重要的特性之一。很多初学者都感觉右值引用晦涩难懂,其实不然。右值引用只不过是一种新的 C++ 语法,真正理解起来有难度的 阅读全文
posted @ 2023-10-11 17:20
[BORUTO]
阅读(78)
评论(0)
推荐(1)
摘要:
1. 基本用法 lambda 表达式是 C++11 最重要也是最常用的特性之一,这是现代编程语言的一个特点,lambda 表达式有如下的一些优点: 声明式的编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或函数对象。 简洁:避免了代码膨胀和功能分散,让开发更加高效。 在需要的时间和 阅读全文
posted @ 2023-10-11 17:18
[BORUTO]
阅读(122)
评论(0)
推荐(0)
摘要:
1. 委托构造函数 委托构造函数允许使用同一个类中的一个构造函数调用其它的构造函数,从而简化相关变量的初始化。下面举例说明: #include <iostream> using namespace std; class Test { public: Test() {}; Test(int max) 阅读全文
posted @ 2023-10-11 17:17
[BORUTO]
阅读(203)
评论(0)
推荐(0)
摘要:
C++11 标准中借助右值引用可以为指定类添加移动构造函数,这样当使用该类的右值对象(可以理解为临时对象)初始化同类对象时,编译器会优先选择移动构造函数。注意,移动构造函数的调用时机是:用同类的右值对象初始化新对象。那么,用当前类的左值对象(有名称,能获取其存储地址的实例对象)初始化同类对象时,是否 阅读全文
posted @ 2023-10-11 17:17
[BORUTO]
阅读(1498)
评论(0)
推荐(0)
摘要:
在 C++98/03 中,不同的容器和数组遍历的方式不尽相同,写法不统一,也不够简洁,而 C++11 基于范围的 for 循环可以以简洁、统一的方式来遍历容器和数组,用起来也更方便了。 1. for 循环新语法 在介绍新语法之前,先来看一个使用迭代器遍历容器的例子: #include <iostre 阅读全文
posted @ 2023-10-11 17:16
[BORUTO]
阅读(992)
评论(0)
推荐(0)
摘要:
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定 1. 定义和声明的区别 声明用来告诉编译器变量的名称和类型,而不分配内存,不赋初值。 定义为了给变量分配内存,可以为变量赋初值。 注:定 阅读全文
posted @ 2023-10-11 17:09
[BORUTO]
阅读(594)
评论(0)
推荐(0)
摘要:
1. const修饰普通变量 (1)定义普通变量的时候,只能初始化一次,以后不可再修改其值。 #include<iostream> using namespace std; int main() { //(1)在定义普通变量时,只能初始化一次,以后不能修改其值。 const int numb 阅读全文
posted @ 2023-10-11 17:08
[BORUTO]
阅读(24)
评论(0)
推荐(0)
摘要:
1. C 语言中static关键字用法 1.1 静态局部变量 用于函数体内部修饰变量,这种变量的生存期长于该函数。 int foo() { static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我 阅读全文
posted @ 2023-10-11 17:08
[BORUTO]
阅读(27)
评论(0)
推荐(0)
摘要:
操作数据库的案例 #include <stdio.h> #include <stdlib.h> #include <mysql.h> //固定不变的 MYSQL mysql; //一个数据库结构体 MYSQL_RES* res; //一个结果集结构体 MYSQL_ROW row; //char** 阅读全文
posted @ 2023-10-11 17:05
[BORUTO]
阅读(345)
评论(0)
推荐(0)
摘要:
一、配置 Visual Studio 连接 MySQL 1、确定 MySQL 安装目录下是否存在 include 和 lib 目录(include目录下包含C/C++连接MySQL的头文件,lib目录下包含所需要的库) 2、打开 VS2019,其它版本也行,然后新建一个空项目,在源文件目录下新建一个 阅读全文
posted @ 2023-10-11 17:04
[BORUTO]
阅读(306)
评论(0)
推荐(0)
摘要:
简介: C++11中增加的线程类,使得我们能够非常方便的创建和使用线程,但有时会有些不方便,比如需要获取线程返回的结果,就不能通过join()得到结果,只能通过一些额外手段获得,比如:定义一个全局变量,在子线程中赋值,在主线程中读这个变量的值,整个过程比较繁琐。C++提供的线程库中提供了一些类用于访 阅读全文
posted @ 2023-10-11 17:01
[BORUTO]
阅读(831)
评论(0)
推荐(0)
摘要:
一、线程为什么要同步 线程同步的目的是为了防止多个线程同时访问共享资源时出现数据竞争和不一致的情况。 线程间为什么需要同步?直接来看一个例子: #include <iostream> #include <time.h> #include <thread> using namespace std; i 阅读全文
posted @ 2023-10-11 17:00
[BORUTO]
阅读(130)
评论(0)
推荐(0)
摘要:
1. 认识多线程 传统的C++(C++11之前)中并没有引入线程这个概念,在C++11出来之前,如果我们想要在C++中实现多线程,需要借助操作系统平台提供的API,比如Linux的<pthread.h>,或者windows下的<windows.h> 。 C++11提供了语言层面上的多线程,包含在头文 阅读全文
posted @ 2023-10-11 16:57
[BORUTO]
阅读(123)
评论(0)
推荐(0)
摘要:
5 STL- 常用算法 概述: 算法主要是由头文件<algorithm> <functional> <numeric>组成。 <algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等 <numeric>体积很小,只包括几个在序列上面进行简单数学运算 阅读全文
posted @ 2023-10-11 15:03
[BORUTO]
阅读(38)
评论(0)
推荐(0)
摘要:
4 STL- 函数对象 4.1 函数对象 4.1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象 函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 4.1.2 函数对象使用 特点: 函数对象在使用时,可以像普通函数那样调 阅读全文
posted @ 2023-10-11 14:58
[BORUTO]
阅读(37)
评论(0)
推荐(0)
摘要:
2 STL初识 2.1 STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西 C++的面向对象和泛型编程思想,目的就是复用性的提升 大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作 为了建立数据结构和算法的一套标准,诞生了STL 2.2 STL基本概念 STL(Stan 阅读全文
posted @ 2023-10-11 14:58
[BORUTO]
阅读(24)
评论(0)
推荐(0)
摘要:
3 STL- 常用容器 3.0 std::string(字符串) 3.0.1 string基本概念 本质: string是C++风格的字符串,而string本质上是一个类 string和char * 区别: char * 是一个指针 string是一个类,类内部封装了char*,管理这个字符串,是一 阅读全文
posted @ 2023-10-11 14:58
[BORUTO]
阅读(41)
评论(0)
推荐(0)
摘要:
本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只是一个框架 模板的通用并不是万能的 1.2 函数模板 C++另一种编程思想称为 ==泛型编程== ,主要利用的技术就 阅读全文
posted @ 2023-10-11 14:56
[BORUTO]
阅读(31)
评论(0)
推荐(0)
摘要:
5 文件操作 C++文件操作介绍 文件是指存储在计算机文件系统中的数据集合。文件可以包含各种类型的信息,例如文本、图像、音频视频等。在 C++中,文件是一种数据流,可以用于读取或写入数据。C++提供了一系列的文件操作函数,用于实现对文件的读取、写入、打开、关闭等操作。 在 C++中,文件可以分为文本 阅读全文
posted @ 2023-10-11 14:54
[BORUTO]
阅读(148)
评论(0)
推荐(0)
摘要:
4 类和对象 C++面向对象的三大特性为:==封装、继承、多态== C++认为==万事万物都皆为对象==,对象上有其属性和行为 例如: 人可以作为对象,属性有姓名、年龄、身高、体重...,行为有走、跑、跳、吃饭、唱歌... 车也可以作为对象,属性有轮胎、方向盘、车灯...,行为有载人、放音乐、放空调 阅读全文
posted @ 2023-10-11 14:53
[BORUTO]
阅读(125)
评论(0)
推荐(0)
摘要:
3 函数提高 3.1 函数默认参数 在C++中,函数的形参列表中的形参是可以有默认值的。 语法:返回值类型 函数名 (参数= 默认值){} 示例: int func(int a, int b = 10, int c = 10) { return a + b + c; } //1. 如果某个位置参数有 阅读全文
posted @ 2023-10-11 14:51
[BORUTO]
阅读(25)
评论(0)
推荐(0)
摘要:
2 引用 2.1 引用的基本使用 作用: 给变量起别名 语法: 数据类型 &别名 = 原名 示例: int main() { int a = 10; int &b = a; cout << "a = " << a << endl; cout << "b = " << b << endl; 阅读全文
posted @ 2023-10-11 14:50
[BORUTO]
阅读(28)
评论(0)
推荐(0)
摘要:
本文详细介绍了C++中的内存管理,包括new/delete操作符的使用、自定义类型内存管理、operatornew和operatordelete函数,以及内存泄露的概念、分类、检测和避免方法。特别强调了智能指针和RAII在内存管理中的作用。 C++内存分布 int globalVar = 1; st 阅读全文
posted @ 2023-10-11 14:50
[BORUTO]
阅读(70)
评论(0)
推荐(0)
摘要:
8 结构体 8.1 结构体基本概念 结构体属于用户==自定义的数据类型==,允许用户存储不同的数据类型 8.2 结构体定义和使用 语法:struct 结构体名 { 结构体成员列表 }; 通过结构体创建变量的方式有三种: struct 结构体名 变量名 struct 结构体名 变量名 = { 成员1值 阅读全文
posted @ 2023-10-11 14:48
[BORUTO]
阅读(137)
评论(0)
推荐(0)
摘要:
7 指针 7.1 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一般用十六进制数字表示 可以利用指针变量保存地址 7.2 指针的定义和使用 指针变量定义语法: 数据类型 * 变量名; 示例: int main() { //1、指针的定义 int a = 10; / 阅读全文
posted @ 2023-10-11 14:46
[BORUTO]
阅读(37)
评论(0)
推荐(0)
摘要:
6 函数 6.1 概述 作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。 6.2 函数的定义 函数的定义一般主要有5个步骤: 1、返回值类型 2、函数名 3、参数表列 4、函数体语句 5、return 表达式 语法: 返回值类型 函数名 阅读全文
posted @ 2023-10-11 14:45
[BORUTO]
阅读(37)
评论(0)
推荐(0)
摘要:
5 数组 5.1 概述 所谓数组,就是一个集合,里面存放了相同类型的数据元素 特点1:数组中的每个==数据元素都是相同的数据类型== 特点2:数组是由==连续的内存==位置组成的 5.2 一维数组 一维数组 5.2.1 一维数组定义方式 一维数组定义的三种方式: 数据类型 数组名[ 数组长度 ]; 阅读全文
posted @ 2023-10-11 14:44
[BORUTO]
阅读(56)
评论(0)
推荐(0)
摘要:
4 程序流程结构 C/C++支持最基本的三种程序运行结构:==顺序结构、选择结构、循环结构== 顺序结构:程序按顺序执行,不发生跳转 选择结构:依据条件是否满足,有选择的执行相应功能 循环结构:依据条件是否满足,循环多次执行某段代码 4.1 选择结构 4.1.1 if语句 作用:执行满足条件的语句 阅读全文
posted @ 2023-10-11 14:41
[BORUTO]
阅读(98)
评论(0)
推荐(0)
摘要:
3 运算符 作用:用于执行代码的运算 本章我们主要讲解以下几类运算符: 运算符类型 作用 算术运算符 用于处理四则运算 赋值运算符 用于将表达式的值赋给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值 3.1 算术运算符 作用:用于处理四则运算 阅读全文
posted @ 2023-10-11 14:38
[BORUTO]
阅读(43)
评论(0)
推荐(0)
摘要:
2 数据类型 C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存 2.1 整型 作用:整型变量表示的是==整数类型==的数据 C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同: 数据类型 占用空间 取值范围 short(短整型) 2字节 (-2^ 阅读全文
posted @ 2023-10-11 14:37
[BORUTO]
阅读(49)
评论(0)
推荐(0)
摘要:
1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选择添加->新建项 给C++文件起个名称,然后点 阅读全文
posted @ 2023-10-11 14:35
[BORUTO]
阅读(29)
评论(0)
推荐(0)
摘要:
内联函数 在C语言中,内联函数(Inline Function)是一种用于优化代码执行效率的机制。内联函数在编译时将函数的代码直接插入到调用它的地方,而不是通过函数调用的方式执行,从而减少了函数调用的开销,提高了代码的执行速度。 C语言的内联函数使用 inline 关键字来声明。将函数声明为内联函数 阅读全文
posted @ 2023-10-11 13:59
[BORUTO]
阅读(386)
评论(0)
推荐(0)
摘要:
1、C 命令行参数 执行程序时,可以从命令行传值给 C 程序。这些值被称为命令行参数,它们对程序很重要,特别是当您想从外部控制程序,而不是在代码内对这些值进行硬编码时,就显得尤为重要了。 命令行参数是使用 main() 函数参数来处理的,其中,argc 是指传入参数的个数,argv[] 是一个指针数 阅读全文
posted @ 2023-10-11 13:53
[BORUTO]
阅读(172)
评论(0)
推荐(0)
摘要:
1、内存分区 可将内存简单分为:栈区、堆区、静态区,其中静态区包含数据段、代码段的内容,主要存储常量、字符串常量等只读数据、已初始化的全局变量和静态变量以及未初始化的全局变量和静态变量。 堆栈主要指的是栈,而不是堆。 1.1 栈区(Stack) 定义:栈区用于存储函数的局部变量、函数参数和返回地址。 阅读全文
posted @ 2023-10-11 13:53
[BORUTO]
阅读(74)
评论(0)
推荐(0)
摘要:
C 可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数。 C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数。 声明方式为: int func_name(int arg1, ...); 其中,省略号 ... 表示可 阅读全文
posted @ 2023-10-11 13:52
[BORUTO]
阅读(36)
评论(0)
推荐(0)
摘要:
C语言 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢 阅读全文
posted @ 2023-10-11 13:51
[BORUTO]
阅读(63)
评论(0)
推荐(0)
摘要:
C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。 所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符 阅读全文
posted @ 2023-10-11 13:46
[BORUTO]
阅读(50)
评论(0)
推荐(0)
摘要:
C 错误处理 C 语言不提供对错误处理的直接支持,但是作为一种系统编程语言,它以返回值的形式允许您访问底层数据。在发生错误时,大多数的 C 或 UNIX 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 errno.h 阅读全文
posted @ 2023-10-11 13:46
[BORUTO]
阅读(48)
评论(0)
推荐(0)
摘要:
在C语言中,操作文件之前必须先打开文件;所谓“打开文件”,就是让程序和文件建立连接的过程。 打开文件之后,程序可以得到文件的相关信息,例如大小、类型、权限、创建者、更新时间等。在后续读写文件的过程中,程序还可以记录当前读写到了哪个位置,下次可以在此基础上继续操作。 标准输入文件 stdin(表示键盘 阅读全文
posted @ 2023-10-11 13:45
[BORUTO]
阅读(1233)
评论(0)
推荐(0)
摘要:
C语言 输入 & 输出 当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。 当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到 阅读全文
posted @ 2023-10-11 13:44
[BORUTO]
阅读(119)
评论(0)
推荐(0)
摘要:
C 共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 1. 定义共用体 为了定义共用体,您必须使用 union 语句,方式与定义结构类似。union 语句定 阅读全文
posted @ 2023-10-11 12:07
[BORUTO]
阅读(201)
评论(0)
推荐(0)
摘要:
C 数组允许定义可存储相同类型数据项的变量,结构体是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。 结构体中的数据成员可以是基本数据类型(如 int、float、char 等),也可以是其他结构体类型、指针类型等。 结构体用于表示一条记录,假设您想要跟踪图书馆中书本的动 阅读全文
posted @ 2023-10-11 12:06
[BORUTO]
阅读(124)
评论(0)
推荐(0)
摘要:
1. 什么是万能指针? 万能指针其实就是void *类型的指针,而void *指针一般被称为通用指针或叫泛指针。它是C语言关于纯粹地址的一种约定。当某个指针是void型指针时,所指向的对象不属于任何类型。 因为void指针不属于任何类型,不可以对其进行算术运算,比如自增,编译器不知道其自增需要增加多 阅读全文
posted @ 2023-10-11 12:05
[BORUTO]
阅读(558)
评论(0)
推荐(1)
摘要:
1.函数指针 函数指针:首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址; 1.1 函数指针的定义形式 函数指针的定义: 函数的返回值类型(*指针名)(函数的参数列表类型) 1.2 函数指针的使用方法 #include <stdio.h> //返回两个数中的最大值 int max 阅读全文
posted @ 2023-10-11 12:04
[BORUTO]
阅读(192)
评论(0)
推荐(0)
摘要:
1. 初识C指针 学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的 阅读全文
posted @ 2023-10-11 12:03
[BORUTO]
阅读(93)
评论(0)
推荐(0)
摘要:
C enum(枚举) 枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量。,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。 定义一个枚举类型,需要使用 enum 关键字,后面跟着枚举类型的名称,以及用大括号 {} 括起来的一 阅读全文
posted @ 2023-10-11 12:02
[BORUTO]
阅读(97)
评论(0)
推荐(0)
摘要:
C 函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器 阅读全文
posted @ 2023-10-11 12:01
[BORUTO]
阅读(87)
评论(0)
推荐(0)
摘要:
C 数组 C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量,比如 runoob0、runoob1、...、runoob99,而是声明一个数组变量,比如 runoob,然后使 阅读全文
posted @ 2023-10-11 12:00
[BORUTO]
阅读(168)
评论(1)
推荐(0)
摘要:
1. 流程结构概述 程序流程结构是指编程中用于组织和控制代码执行顺序的结构。通过流程结构,可以按照特定的逻辑和条件来控制代码的执行路径,从而实现不同的功能和逻辑控制。以下是常见的程序流程结构: 顺序结构(Sequence Structure):按照代码编写顺序从上到下一行接一行地依次执行。 #inc 阅读全文
posted @ 2023-10-11 11:59
[BORUTO]
阅读(395)
评论(0)
推荐(0)
摘要:
C 运算符 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。 1. 算术运算符 下表 阅读全文
posted @ 2023-10-11 11:57
[BORUTO]
阅读(89)
评论(0)
推荐(0)
摘要:
1. 常量和变量概述 所谓常量就是在程序运行过程中,其值不能被改变的量,在C语言中,常量有很多种不同的类型,如下表: 常量类型 示例 整型常量 100,200,-100,0 浮点型常量 3.14 , 0.125,-3.123 字符型常量 ‘a’,‘b’,‘1’,‘\n’ 字符串常量 “a”,“ab” 阅读全文
posted @ 2023-10-11 09:43
[BORUTO]
阅读(442)
评论(0)
推荐(0)

浙公网安备 33010602011771号