-
C++运算符重载基础教学
所属栏目:[语言] 日期:2023-04-15 热度:4424
所谓重载,就是赋予新的含义。函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。实际上[详细]
-
C++ typeid运算符 取得类别信息
所属栏目:[语言] 日期:2023-04-15 热度:8866
typeid 运算符用来获取一个表达式的类型信息。类型信息对于编程语言非常重要,它描述了数据的各种属性:对于基本类型(int、float 等C++内置类型)的数据,类型信息所包含的内容比较简单,主要是指数据的类型。对于类[详细]
-
C++虚函数注意事宜以及构成多态的条件
所属栏目:[语言] 日期:2023-04-15 热度:4126
C++ 虚函数对于多态具有决定性的作用,有虚函数才能构成多态。上节《C++多态和虚函数快速入门教程》我们已经介绍了虚函数的概念,这节我们来重点说一下虚函数的注意事项。1) 只需要在虚函数的声明处加上 virtual 关键[详细]
-
C++多态和虚函数迅速入门教程
所属栏目:[语言] 日期:2023-04-15 热度:5033
在《C++将派生类赋值给基类(向上转型)》一节中讲到,基类的指针也可以指向派生类对象,请看下面的例子:#include <iostream>using namespace std;//基类Peopleclass People{public:People(char *name, int age);vo[详细]
-
C++虚继承和虚基类说明
所属栏目:[语言] 日期:2023-04-15 热度:2949
多继承(Multiple Inheritance)是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一[详细]
-
C++三种继承方案
所属栏目:[语言] 日期:2023-04-15 热度:5568
C++继承的一般语法为:class 派生类名:[继承方式] 基类名{ 派生类新增加的成员};继承方式限定了基类成员在派生类中的访问权限,包括 public(公有的)、private(私有的)和 protected(受保护的)。此项是可选项[详细]
-
C++继承时的名字遮蔽难题
所属栏目:[语言] 日期:2023-04-15 热度:6598
如果派生类中的成员(包括成员变量和成员函数)和基类中的成员重名,那么就会遮蔽从基类继承过来的成员。所谓遮蔽,就是在派生类中使用该成员(包括在定义派生类时使用,也包括通过派生类对象访问该成员)时,实际上[详细]
-
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》一节),本节[详细]
