自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 C++ Web 编程

为了更好地了解 CGI 的概念,让我们点击一个超链接,浏览一个特定的网页或 URL,看看会发生什么。然而,以这种方式搭建起来的 HTTP 服务器,不管何时请求目录中的某个文件,HTTP 服务器发送回来的不是该文件,而是以程序形式执行,并把执行产生的输出发送回浏览器显示出来。公共网关接口(CGI),是使得应用程序(称为 CGI 程序或 CGI 脚本)能够与 Web 服务器以及客户端进行交互的标准协议。这些 CGI 程序可以用 Python、PERL、Shell、C 或 C++ 等进行编写。下图演示了 CGI

2025-03-07 18:19:42 882

原创 C++ 多线程

线程是程序中的轻量级执行单元,允许程序同时执行多个任务。多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。。C++ 多线程编程涉及在一个程序中创建和管理多个并发执行的线程。C++ 提供了强大的多线程支持,特别是在 C++11 标准及其之后,通过<thread>标准库使得多线程编程变得更加简单和安全。

2025-03-07 18:18:23 585

原创 C++ 信号处理

信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。

2025-03-07 18:17:25 577

原创 C++ 预处理器

宏描述__LINE__这会在程序编译时包含当前行号。__FILE__这会在程序编译时包含当前文件名。__DATE__这会包含一个形式为 month/day/year 的字符串,它表示把源文件转换为目标代码的日期。__TIME__这会包含一个形式为 hour:minute:second 的字符串,它表示程序被编译的时间。

2025-03-07 18:16:52 508

原创 C++ 模板

模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如,我们可以定义许多不同类型的向量,比如或。您可以使用模板来定义函数和类,接下来让我们一起来看看如何使用。

2025-03-02 18:27:33 896

原创 C++ 命名空间

命名空间的定义使用关键字namespace,后跟命名空间的名称,如下所示:namespace namespace_name { // 代码声明 }为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:name::code;// code 可以是变量或函数。

2025-03-02 18:27:02 442

原创 C++ 动态内存

了解动态内存在 C++ 中是如何工作的是成为一名合格的 C++ 程序员必不可少的。很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行时分配堆内的内存,这会返回所分配的空间地址。这种运算符即运算符。如果您不再需要动态分配的内存空间,可以使用运算符,删除之前由 new 运算符分配的内存。

2025-03-02 18:26:05 686

原创 C++ 异常处理

您可以通过继承和重载exception类来定义新的异常。

2025-03-02 18:24:04 814

原创 C++ 文件和流

到目前为止,我们已经使用了标准库,它提供了和方法分别用于从标准输入读取流和向标准输出写入流。本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库要在 C++ 中进行文件处理,必须在 C++ 源代码文件中包含头文件 <iostream> 和 <fstream>。

2025-03-02 18:22:22 1427

原创 C++ 接口(抽象类)

接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:class Box { public: // 纯虚函数 virtual double getVolume() = 0;// 长度 double breadth;// 宽度 double height;// 高度 };设计。

2025-03-02 18:21:36 691

原创 C++ 数据封装

数据封装(Data Encapsulation)是面向对象编程(OOP)的一个基本概念,它通过将数据和操作数据的函数封装在一个类中来实现。这种封装确保了数据的私有性和完整性,防止了外部代码对其直接访问和修改。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即。是一种把数据和操作数据的函数捆绑在一起的机制,是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。C++ 通过创建。

2025-03-02 18:20:19 739

原创 C++ 数据抽象

数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。让我们举一个现实生活中的真实例子,比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在屏幕上。

2025-03-02 18:19:48 433

原创 C++ 多态

按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。在 C++ 中,多态(Polymorphism)是面向对象编程的重要特性之一。C++ 多态允许使用基类指针或引用来调用子类的重写方法,从而使得同一接口可以表现不同的行为。多态使得代码更加灵活和通用,程序可以通过基类指针或引用来操作不同类型的对象,而不需要显式区分对象类型。这样可以使代码更具扩展性,在增加新的形状类时不需要修改主程序。virtual= 0。

2025-03-02 18:18:24 1761

原创 C++ 重载运算符和重载函数

C++ 允许在同一作用域中的某个和指定多个定义,分别称为和。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个或时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为。

2025-03-02 18:17:51 803

原创 C++ 继承

面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为,新建的类称为。继承代表了关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。代码如下:// 基类// eat() 函数// sleep() 函数//派生类。

2025-03-02 18:17:21 576

原创 C++ 类 & 对象

定义一个类需要使用关键字 class,然后指定类的名称,并类的主体是包含在一对花括号中,主体包含类的成员变量和成员函数。定义一个类,本质上是定义一个数据类型的蓝图,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。以下实例我们使用关键字class定义 Box 数据类型,包含了三个成员变量 length、breadth 和 height:// 盒子的长度 double breadth;// 盒子的宽度 double height;// 盒子的高度 };关键字public。

2025-03-02 18:15:13 567

原创 作者的话

写到这 c++ 基础部分临近完结 也请大家多点点赞 关注 评论 收藏求求了下面会讲 面向对象 -- 作者

2025-03-01 18:31:02 78

原创 C++ 数据结构

C++ 提供了多种数据结构,既有基础的如数组、结构体、类等,也有高级的 STL 容器如vectormap和等。下面详细介绍 C++ 中常用的数据结构及其特点和用法。

2025-03-01 18:26:05 440

原创 C++ vector 容器

C++ 中的 vector 是一种序列容器,它允许你在运行时动态地插入和删除元素。vector 是基于数组的数据结构,但它可以自动管理内存,这意味着你不需要手动分配和释放内存。与 C++ 数组相比,vector 具有更多的灵活性和功能,使其成为 C++ 中常用的数据结构之一。vector 是 C++ 标准模板库(STL)的一部分,提供了灵活的接口和高效的操作。

2025-03-01 18:25:30 463

原创 C++ 结构体(struct)

在 C++ 中,struct 语句用于定义结构体(structure)。结构体是一种用户自定义的数据类型,用于将不同类型的数据组合在一起。与类(class)类似,结构体允许你定义成员变量和成员函数。为了定义结构,您必须使用struct语句。struct 语句定义了一个包含多个成员的新的数据类型,struct 语句的格式如下:type_name是结构体类型的名称,是标准的变量定义,比如int i;或者float f;或者其他有效的变量定义。

2025-03-01 18:24:18 829

原创 C++ 基本的输入输出

C++ 标准库提供了一组丰富的输入/输出功能,我们将在后续的章节进行介绍。本章将讨论 C++ 编程中最基本和最常见的 I/O 操作。C++ 的 I/O 发生在流中,流是字节序列。如果字节流是从设备(如键盘、磁盘驱动器、网络连接等)流向内存,这叫做。如果字节流是从内存流向设备(如显示屏、打印机、磁盘驱动器、网络连接等),这叫做。

2025-03-01 18:23:47 803

原创 C++ 日期 & 时间

C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 <ctime> 头文件。和。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。结构类型把日期和时间以 C 结构的形式保存,tm 结构的定义如下:// 秒,正常范围从 0 到 59,但允许至 61 int tm_min;// 分,范围从 0 到 59 int tm_hour;

2025-03-01 18:23:15 580

原创 C++ 引用

引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。引用必须在定义时初始化,并且一旦绑定到一个变量后,就不能再绑定到其他变量。引用的语法如下:int a = 10;// ref 是 a 的引用int &ref表示ref是一个int类型的引用。ref是a的别名,对ref的操作会直接作用于a。

2025-03-01 18:22:37 830

原创 C++ 指针

指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:在这里,type是指针的基类型,它必须是一个有效的 C++ 数据类型,var-name是指针变量的名称。用来声明指针的星号 * 与乘法中使用的星号是相同的。但是,在这个语句中,星号是用来指定一个变量是指针。以下是有效的指针声明:int *ip;/* 一个整型的指针 */double *dp;

2025-03-01 18:21:34 847

原创 C++ 数组

C++ 支持数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。所有的数组都是由连续的内存位置组成。

2025-03-01 18:21:04 850

原创 C++ 数组

C++ 支持数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。所有的数组都是由连续的内存位置组成。

2025-03-01 18:19:14 575

原创 C++ 数字

我们已经在之前章节的各种实例中定义过数字。

2025-03-01 18:18:44 802

原创 C++ 函数

C++ 中的函数定义的一般形式如下:在 C++ 中,函数由一个函数头和一个函数主体组成。一个函数可以返回一个值。是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字void。这是函数的实际名称。函数名和参数列表一起构成了函数签名。参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。函数主体包含一组定义函数执行任务的语句。

2025-03-01 18:18:14 589

原创 C++ 判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。

2025-03-01 18:17:31 319

原创 C++ 循环

有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。

2025-03-01 18:16:59 296

原创 C++ 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。本章将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和其他运算符。

2025-03-01 18:16:15 826

原创 C++ 存储类

存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。:这是默认的存储类说明符,通常可以省略不写。auto 指定的变量具有自动存储期,即它们的生命周期仅限于定义它们的块(block)。auto 变量通常在栈上分配。:用于建议编译器将变量存储在CPU寄存器中以提高访问速度。在 C++11 及以后的版本中,register 已经是一个废弃的特性,不再具有实际作用。:用于定义具有静态存储期的变量或函数,它们的生命周期贯穿整个程序的运行期。

2025-02-28 21:58:56 659

原创 C++ 修饰符类型

C++ 允许在数据类型前放置修饰符。修饰符是用于改变变量类型的行为的关键字,它更能满足各种情境的需求。下面列出了数据类型修饰符:signed:表示变量可以存储负数。对于整型变量来说,signed 可以省略,因为整型变量默认为有符号类型。unsigned:表示变量不能存储负数。对于整型变量来说,unsigned 可以将变量范围扩大一倍。short:表示变量的范围比 int 更小。short int 可以缩写为 short。long:表示变量的范围比 int 更大。

2025-02-28 21:55:05 732

原创 C++ 常量

使用#define预处理器。使用const关键字。

2025-02-28 21:53:06 461

原创 C++ 变量作用域

一般来说有三个地方可以定义变量:在函数或一个代码块内部声明的变量,称为。在函数参数的定义中声明的变量,称为。在所有函数外部声明的变量,称为。:在函数内部声明的变量具有局部作用域,它们只能在函数内部访问。局部变量在函数每次被调用时被创建,在函数执行完后被销毁。:在所有函数和代码块之外声明的变量具有全局作用域,它们可以被程序中的任何函数访问。全局变量在程序开始时被创建,在程序结束时被销毁。:在代码块内部声明的变量具有块作用域,它们只能在代码块内部访问。

2025-02-28 21:51:48 504

原创 C++ 变量类型

变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示:在这里,type必须是一个有效的 C++ 数据类型,可以是 char、wchar_t、int、float、double、bool 或任何用户自定义的对象,可以由一个或多个标识符名称组成,多个标识符之间用逗号分隔。下面列出几个有效的声明:char c, ch;double d;行。

2025-02-28 21:48:42 823

原创 C++ 数据类型

使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。

2025-02-28 21:47:17 802

原创 C++ 注释

程序的注释是解释性语句,您可以在 C++ 代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。C++ 注释一般有两种:// - 一般用于单行注释。/* ... */ - 一般用于多行注释。注释以 // 开始,直到行末为止。

2025-02-28 21:46:26 226

原创 C++ 基本语法

C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互。现在让我们简要地看一下什么是类、对象,方法、即时变量。

2025-02-28 21:43:06 1388

原创 C++ 环境设置

通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。:虽然它是一个通用的文本编辑器,但它有很多插件支持 C/C++ 开发,使其成为一个流行的选择,通过安装 C/C++ 插件和调整设置,你可以使其成为一个很好的 C 语言开发环境。

2025-02-28 21:38:34 766

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除