-
C++重载++和-- 自增和自减运算符 剖析
所属栏目:[语言] 日期:2022-07-02 热度:51
自增++和自减--都是一元运算符,它的前置形式和后置形式都可以被重载。 上面的代码定义了一个简单的秒表类,m_min 表示分钟,m_sec 表示秒钟,setzero() 函数用于秒表清零,run() 函数是用来描述秒针前进一秒的动作,接下来是三个运算符重载函数。 先来看[详细]
-
C++重载new及delete运算符详解
所属栏目:[语言] 日期:2022-07-02 热度:167
内存管理运算符 new、new[]、delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数。一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内存时才会重载。 两种重载形式的返回值相同,都是void *类型,并且都[详细]
-
C++重载 强制类别转换运算符
所属栏目:[语言] 日期:2022-07-02 热度:95
在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。 类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价[详细]
-
C++运算符重载注意事宜以及汇总
所属栏目:[语言] 日期:2022-07-02 热度:126
在 C++ 中进行运算符重载时,有以下问题需要注意: 重载后运算符的含义应该符合原有用法习惯。例如重载+运算符,完成的功能就应该类似于做加法,在重载的+运算符中做减法是不合适的。此外,重载应尽量保留运算符原有的特性。 C++ 规定,运算符重载不改变运[详细]
-
C++函数模板5分钟进门教学
所属栏目:[语言] 日期:2022-07-02 热度:104
在《C++函数重载》一节中,为了交换不同类型的变量的值,我们通过函数重载定义了四个名字相同、参数列表不同的函数,如下所示: //交换 int 变量的值 void Swap(int *a, int *b){ int temp = *a; *a = *b; *b = temp; } //交换 float 变量的值 void Swap(f[详细]
-
C++函数的默认参数细说
所属栏目:[语言] 日期:2022-07-02 热度:101
在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认[详细]
-
C++类和对象到底是哪个意思
所属栏目:[语言] 日期:2022-07-02 热度:157
C++ 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。 C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体[详细]
-
怎样编译和运行C++程序
所属栏目:[语言] 日期:2022-07-02 热度:192
C++ 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程序,步骤是一样的,这里不再赘述,读者[详细]
-
C++命名空间 名字空间 分析
所属栏目:[语言] 日期:2022-07-02 热度:122
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 例如小李和小韩都参与了一个文件管理系统的开发,它们都定义[详细]
-
C++头文件与std命名空间
所属栏目:[语言] 日期:2022-07-02 热度:161
C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一[详细]
-
C++输入输出 cin与cout
所属栏目:[语言] 日期:2022-07-02 热度:73
在C语言中,我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C++语言中,C语言的这一套输入输出库我们仍然能使用,但是 C++ 又增加了一套新的、更容易使用的输入输出库。 运行结果如下(↙表示按下回车键): Please input an int number: 8[详细]
-
C++变量的定义方位
所属栏目:[语言] 日期:2022-07-02 热度:149
C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。 C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不[详细]
-
C++布尔类别 bool
所属栏目:[语言] 日期:2022-07-02 热度:161
在C语言中,关系运算和逻辑运算的结果有两种,真和假:0 表示假,非 0 表示真。例如: #include stdio.h int main(){ int a, b, flag; scanf(%d %d, a, b); flag = a b; //flag保存关系运算结果 printf(flag = %dn, flag); return 0; } bool 是类型名字,[详细]
-
C++ new和delete运算符介绍
所属栏目:[语言] 日期:2022-07-02 热度:192
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。 用 new 和 delete 分配内存更加简单: int *p = new int[详细]
-
C++ inline内联函数说明
所属栏目:[语言] 日期:2022-07-02 热度:106
函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行。 一个 C[详细]
-
C语言二维数组指针 指向二维数组的指针 说明
所属栏目:[语言] 日期:2022-07-01 热度:160
二维数组在概念上是二维的,有行和列,但在内存中所有的数组元素都是连续排列的,它们之间没有缝隙。以下面的二维数组 a 为例: int a[3][4] = { {0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11} }; 从概念上理解,a 的分布像一个矩阵: 0 1 2 3 4 5 6 7 8 9[详细]
-
C语言函数指针 指对函数的指针 详解
所属栏目:[语言] 日期:2022-07-01 热度:54
一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在内存区域的首地址,这和数组名非常类似。我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所在的内存区域,然后通过指针变量就可以找到[详细]
-
之于C语言指针的总结
所属栏目:[语言] 日期:2022-07-01 热度:53
指针(Pointer)就是内存的地址,C语言允许用一个变量来存放指针,这种变量称为指针变量。指针变量可以存放基本类型数据的地址,也可以存放数组、函数以及其他指针变量的地址。 程序在运行过程中需要的是数据和指令的地址,变量名、函数名、字符串名和数组[详细]
-
C语言结构体详解 C语言struct用处详解
所属栏目:[语言] 日期:2022-07-01 热度:182
前面的教程中我们讲解了数组(Array),它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不[详细]
-
C语言结构体数组详解 带实例演练
所属栏目:[语言] 日期:2022-07-01 热度:145
所谓结构体数组,是指数组中的每个元素都是一个结构体。在实际应用中,C语言结构体数组常被用来表示一个拥有相同数据结构的群体,比如一个班的学生、一个车间的职工等。 在C语言中,定义结构体数组和定义结构体变量的方式类似,请看下面的例子: struct st[详细]
-
C语言结构体指针 指向结构体的指针 解析
所属栏目:[语言] 日期:2022-07-01 热度:165
当一个指针变量指向结构体时,我们就称它为结构体指针。C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在小[详细]
-
C语言枚举类别 C语言enum用法 详解
所属栏目:[语言] 日期:2022-07-01 热度:166
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。 以每周七天为例,我们可以使用#define命令来给每天指定一[详细]
-
C语言共用体 C语言union用法 解析
所属栏目:[语言] 日期:2022-07-01 热度:76
通过前面的讲解,我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为: union 共用体名{ 成员列表 }; 共用体有时也被称为联合或者联[详细]
-
C语言位域 位段 细说
所属栏目:[语言] 日期:2022-07-01 热度:146
有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。 在结构体定义时,我们可以指定某[详细]
-
C语言位运算按位和运算 或运算 异或运算 左移运算 右移运算
所属栏目:[语言] 日期:2022-07-01 热度:96
所谓位运算,就是对一个比特(Bit)位进行操作。在《数据在内存中的存储》一节中讲到,比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了。 C语言提供了六种位运算符: 运算符 | ^ ~ 说明 按位与 按位或 按位异[详细]