-
C++重载数学运算符 示范演示
所属栏目:[语言] 日期:2022-07-03 热度:145
四则运算符(+、-、*、/、+=、-=、*=、/=)和关系运算符(、、=、=、==、!=)都是数学运算符,它们在实际开发中非常常见,被重载的几率也很高,并且有着相似的重载格式。本节以复数类 Complex 为例对它们进行重载,重在演示运算符重载的语法以及规范。 复[详细]
-
C++重载 和 输入和输出运算符 分析
所属栏目:[语言] 日期:2022-07-03 热度:166
在C++中,标准库本身已经对左移运算符和右移运算符分别进行了重载,使其能够用于不同数据的输入输出,但是输入输出的对象只能是 C++ 内置的数据类型(例如 bool、int、double 等)和标准库所包含的类类型(例如 string、complex、ofstream、ifstream 等)[详细]
-
C++重载 下标运算符 细说
所属栏目:[语言] 日期:2022-07-03 热度:109
C++ 规定,下标运算符[ ]必须以成员函数的形式进行重载。该重载函数在类中的声明格式如下: 返回值类型 operator[ ] (参数); 或者: const 返回值类型 operator[ ] (参数) const; 使用第一种声明方式,[ ]不仅可以访问元素,还可以修改元素。使用第二种声[详细]
-
C++重载++和-- 自增和自减运算符 剖析
所属栏目:[语言] 日期:2022-07-03 热度:160
自增++和自减--都是一元运算符,它的前置形式和后置形式都可以被重载。 上面的代码定义了一个简单的秒表类,m_min 表示分钟,m_sec 表示秒钟,setzero() 函数用于秒表清零,run() 函数是用来描述秒针前进一秒的动作,接下来是三个运算符重载函数。 先来看[详细]
-
C++ inline内联函数说明
所属栏目:[语言] 日期:2022-07-03 热度:50
函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行。 一个 C[详细]
-
C++ new和delete运算符介绍
所属栏目:[语言] 日期:2022-07-03 热度:132
在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。 用 new 和 delete 分配内存更加简单: int *p = new int[详细]
-
C++布尔类别 bool
所属栏目:[语言] 日期:2022-07-03 热度:181
在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++变量的定义方位
所属栏目:[语言] 日期:2022-07-03 热度:147
C++ 不但在C语言的基础上进行了很多扩展,而且也对C语言部分做了细节上的改进,变量的定义位置就是其中之一。 C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句。C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持很不[详细]
-
C++输入输出 cin与cout
所属栏目:[语言] 日期:2022-07-03 热度:152
在C语言中,我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C++语言中,C语言的这一套输入输出库我们仍然能使用,但是 C++ 又增加了一套新的、更容易使用的输入输出库。 运行结果如下(↙表示按下回车键): Please input an int number: 8[详细]
-
C++头文件与std命名空间
所属栏目:[语言] 日期:2022-07-03 热度:179
C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一[详细]
-
C++命名空间 名字空间 分析
所属栏目:[语言] 日期:2022-07-03 热度:178
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 例如小李和小韩都参与了一个文件管理系统的开发,它们都定义[详细]
-
怎样编译和运行C++程序
所属栏目:[语言] 日期:2022-07-03 热度:183
C++ 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程序,步骤是一样的,这里不再赘述,读者[详细]
-
C++类和对象到底是哪个意思
所属栏目:[语言] 日期:2022-07-03 热度:72
C++ 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。 C++ 中的类(Class)可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体[详细]
-
C++函数的默认参数细说
所属栏目:[语言] 日期:2022-07-03 热度:142
在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认[详细]
-
C++函数重载解说
所属栏目:[语言] 日期:2022-07-03 热度:162
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同[详细]
-
C++类的定义和对象的建设详解
所属栏目:[语言] 日期:2022-07-03 热度:166
类和对象是 C++ 的重要特性,它们使得 C++ 成为面向对象的编程语言,可以用来开发中大型项目,本节重点讲解类和对象的语法,如果你对它们的概念还不了解,请先阅读《C++类和对象到底是什么意思》。 类是创建对象的模板,一个类可以创建多个对象,每个对象[详细]
-
C++类的成员变量和成员函数细说
所属栏目:[语言] 日期:2022-07-03 热度:79
类可以看做是一种数据类型,它类似于普通的数据类型,但是又有别于普通的数据类型。类这种数据类型是一个包含成员变量和成员函数的集合。 这段代码在类体中定义了成员函数。你也可以只在类体中声明函数,而将函数定义放在类体外面,如下图所示: class Stu[详细]
-
C++类成员的询问权限以及类的封装
所属栏目:[语言] 日期:2022-07-03 热度:181
前面我们在定义类时多次使用到了 public 关键字,表示类的成员具有公开的访问权限,这节我们就来详细讲解。 C++通过 public、protected、private 三个关键字来控制成员变量和成员函数的访问权限,它们分别表示公有的、受保护的、私有的,被称为成员访问限[详细]
-
C++构建函数详解
所属栏目:[语言] 日期:2022-07-03 热度:188
在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。 该例在 Student 类中定义了一个构造函数Student(char *, int, floa[详细]
-
C++建立函数初始化列表
所属栏目:[语言] 日期:2022-07-03 热度:72
构造函数的一项重要功能是对成员变量进行初始化,为了达到这个目的,可以在构造函数的函数体中对成员变量一一赋值,还可以采用初始化列表。 C++构造函数的初始化列表使得代码更加简洁,请看下面的例子: #include iostream using namespace std; class Stu[详细]
-
C++析构函数细聊
所属栏目:[语言] 日期:2022-07-03 热度:184
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。 析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显[详细]
-
C++ this指针说明
所属栏目:[语言] 日期:2022-07-03 热度:50
this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。 运行结果: 李华的年龄是16,成绩是96.5 this 只[详细]
-
C++ static静态成员变量详聊
所属栏目:[语言] 日期:2022-07-03 热度:120
对象的内存中包含了成员变量,不同的对象占用不同的内存(已在《C++对象的内存模型》中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。例如有两个相同类型的对象 a、b,它们都有一个成员变量 m_name,那么修改 a.m_name 的值不会[详细]
-
C++ static静态成员函数剖析
所属栏目:[语言] 日期:2022-07-03 热度:140
在类中,static 除了可以声明静态成员变量,还可以声明静态成员函数。普通成员函数可以访问所有成员(包括成员变量和成员函数),静态成员函数只能访问静态成员。 编译器在编译一个普通成员函数时,会隐式地增加一个形参 this,并把当前对象的地址赋值给 t[详细]
-
C++ const成员变量和成员函数 常成员函数
所属栏目:[语言] 日期:2022-07-02 热度:185
在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量和成员函数。 const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就[详细]