-
C++继承和派生简单教程
所属栏目:[语言] 日期:2023-04-15 热度:3863
C++ 中的继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。继承(Inheritance)可以理解为一个类从另一个类获取成员变量和成员函数的过程。例如类 B 继承于类 A[详细]
-
C++引用10分钟入门教案
所属栏目:[语言] 日期:2023-04-15 热度:3534
我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字[详细]
-
C++ class和struct到底有什么差异
所属栏目:[语言] 日期:2023-04-14 热度:983
C++ 中保留了C语言的 struct 关键字,并且加以扩充。在C语言中,struct 只能包含成员变量,不能包含成员函数。而在C++中,struct 类似于 class,既可以包含成员变量,又可以包含成员函数。C++中的 struct 和 class 基[详细]
-
GDB help命令 查看目标命令的关键用法
所属栏目:[语言] 日期:2023-04-14 热度:6918
截止到本节,我们接触了大量的 GDB 命令,甚至很多命令还拥有不同的语法格式和参数。这就产生一个问题,如何才能记住它们呢?实际上,GDB 调试器的开发人员也想到了这个问题。为了降低用户使用 GDB 调试器的学习成本[详细]
-
GDB frame和backtrace命令 查询栈信息
所属栏目:[语言] 日期:2023-04-14 热度:9163
当程序因某种异常停止运行时,我们要做的就是找到程序停止的具体位置,分析导致程序停止的原因。对于 C、C++ 程序而言,异常往往出现在某个函数体内,例如 main() 主函数、调用的系统库函数或者自定义的函数等。要知[详细]
-
GDB禁用和删掉断点
所属栏目:[语言] 日期:2023-04-14 热度:2550
我们知道,GDB 调试器支持 3 种断点,分别为普通断点(用 break 命令创建)、观察断点(用 watch 命令建立)以及捕捉断点(用 catch 命令建立)。并且如果需要的话,我们可以在被调试程序中打多个断点,甚至于 GDB 允[详细]
-
GDB print与display命令 查视变量的值
所属栏目:[语言] 日期:2023-04-14 热度:8131
前面章节中提到,使用 GDB 调试程序,最常用的方法是:单步调试或者断点调试程序,期间通过查看某个变量或者表达式的值,判断当前程序的执行过程是否正确,不断缩小异常或 Bug 位于代码中的范围,最终找到并修复。对[详细]
-
C++ new和delete运算符说明
所属栏目:[语言] 日期:2023-04-14 热度:2479
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:纯文本复制int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存在C++中,这两个函数仍然可以[详细]
-
C++布尔 类别 bool
所属栏目:[语言] 日期:2023-04-14 热度:8348
在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如:#include <stdio.h>int main(){int a, b, flag;scanf("%d %d", &a, &b);flag = a > b; //flag保存关系运算结果printf("flag = %d[详细]
-
怎样编译和运作C++程序
所属栏目:[语言] 日期:2023-04-14 热度:4443
C++ 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程[详细]
-
C++类和对象究竟是什么意思
所属栏目:[语言] 日期:2023-04-14 热度:5052
C++ 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员[详细]
-
学习C++之前需先学习C语言吗
所属栏目:[语言] 日期:2023-04-14 热度:1755
C++ 读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 7S 和 iPhone 7、Win10 和 Win7 的关[详细]
-
GDB条件断点(condition命令)细说
所属栏目:[语言] 日期:2023-04-11 热度:6734
前面章节给大家介绍了 GDB 调试器中普通断点、观察断点以及捕捉断点的功能和用法。其中值得一提的是,对于普通断点的建立,可以使用如下格式的 break 命令:(gdb) break ... if cond... 参数用于指定生成断点的具体位[详细]
-
gcc指令一次处置 多个文件
所属栏目:[语言] 日期:2023-04-11 热度:8167
通过前面几节的学习,读者已经了解了如何使用 gcc(g++)指令调用 GCC 编译器编译(包括预处理、编译、汇编和链接)C 或者 C++ 源代码,例如:[root@bogon demo]# lsdemo1.c demo2.c[root@bogon demo]# cat demo1.c#[详细]
-
GCC -l选项 手动增加链接库
所属栏目:[语言] 日期:2023-04-11 热度:3994
链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。在链接过程中,它必须把符号(变量名、函数名等一些列标识符)用对应的数据的内存地址(变量地址、函数地址等)替代,以完成程序中多个模块[详细]
-
GCC -E选项 对源程序做预处置操作
所属栏目:[语言] 日期:2023-04-11 热度:5158
通过前面的学习我们知道,根据源代码文件后缀名的不同,gcc 指令可以自行判断出该源程序是由哪种编程语言编写,从而完成由源代码到可执行代码的转换工作。考虑到本教程主要讲解如何使用 gcc 指令运行 C/C++ 程序,因[详细]
-
GCC自动鉴别的文件扩展名
所属栏目:[语言] 日期:2023-04-11 热度:5972
通过前面的学习我们知道,对于执行 C 或者 C++ 程序,需要借助 gcc(g++)指令来调用 GCC 编译器。并且对于以 .c 为扩展名的文件,GCC 会自动将其视为 C 源代码文件;而对于以 .cpp 为扩展名的文件,GCC 会自动将其视[详细]
-
GDB catch命令 创建捕捉断点
所属栏目:[语言] 日期:2023-04-11 热度:3387
要知道,GDB 调试器支持在被调试程序中打 3 种断点,分别为普通断点、观察断点和捕捉断点,其中普通断点用 break 命令建立(可阅读《GDB break》一节),观察断点用 watch 命令建立(可阅读《GDB watch》一节),本节[详细]
-
GDB watch命令 监控变量值的改变
所属栏目:[语言] 日期:2023-04-11 热度:4676
《GDB break命令》一节,给大家介绍了使用 break 命令在程序某一行的位置打断点。但还有一些场景,我们需要监控某个变量或者表达式的值,通过值的变化情况判断程序的执行过程是否存在异常或者 Bug。这种情况下,brea[详细]
-
GDB break(b) 设定断点
所属栏目:[语言] 日期:2023-04-11 热度:6201
默认情况下,程序不会进入调试模式,代码会瞬间从开头执行到末尾。要想观察程序运行的内部细节(例如某变量值的变化情况),可以借助 GDB 调试器在程序中的某个地方设置断点,这样当程序执行到这个地方时就会停下来。[详细]
-
gdb run(r)命令 开启程序
所属栏目:[语言] 日期:2023-04-11 热度:9827
使用 GDB 调试器调试程序的过程,其实就是借助 GDB 调试器来监控程序的执行流程,进而发现程序中导致异常或者 Bug 的代码。通过前面章节的学习,读者已经学会了如何启动 GDB 调试器,在此基础上,本节继续为大家讲解[详细]
-
GDB下载与安装教学
所属栏目:[语言] 日期:2023-04-11 热度:672
基于 Linux 系统的免费、开源,衍生出了多个不同的 Linux 版本,比如 Redhat、CentOS、Ubuntu、Debian 等。这些 Linux 发行版中,有些默认安装有 GDB 调试器,但有些默认不安装。判断当前 Linux 发行版是否安装有 GD[详细]
-
gcc和g++是啥 有什么差异
所属栏目:[语言] 日期:2023-04-10 热度:3471
发展至今,GCC 编译器已经更新至 10.1.0 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ 。除此之外,当下的 GCC 编译器还支持编译 Go、Objective-C,Objective-C ++,Fortran,[详细]
-
再说说UDP和TCP
所属栏目:[语言] 日期:2023-04-10 热度:8873
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复 ACK 包确认,多种机制保证了数据能够正确到达,不会丢失或出错。UDP 是非连接的传输协议,没有建立连接和断[详细]
-
图解TCP四次握手断开联系
所属栏目:[语言] 日期:2023-04-10 热度:2539
建立连接非常重要,它是数据正确传输的前提;断开连接同样重要,它让计算机释放不再使用的资源。如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪[详细]