考虑一个情况,在同一个班有两个同名的人,都叫 Zara 。每当我们需要区分他们的时候,除了它们的名字我们肯定会使用一些额外的信息,就像如果他们住在不同的区域或他们的母亲或父亲的名字,等等。同样的情况会出现在你的 C++ 应用程序中。例如,你可能会编写一些代码,有一个名为 xyz() 的函数,在另一个库中也有同样的函数 xyz() 。
很好地理解动态内存到底如何在 C++ 中发挥作用是成为一个好的 C++ 程序员所必需的。 C++ 程序中的内存分为两个部分:栈:所有函数内部声明的变量会占用栈的内存。 堆:这是程序中未使用的内存,可以在程序运行时动态地分配内存。很多时候,你事先不知道你在一个定义的变量中需要多少内存来存储特定的信息以及在程序运行时所需内存的大小。
接口可以用来描述一个 C++ 类的行为或功能,但是并不需要对这个类进行实现。 C++ 接口是通过抽象类来实现的,这些抽象类不应与数据抽象混淆,数据抽象的概念:概念结构是对现实世界的一种抽象,从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
所有的 C++ 程序是由以下两个基本要素组成:程序语句(代码):这是程序执行行为的一部分,他们被称为函数。 程序数据:数据是受程序函数影响的信息。封装是一个面向对象编程的概念,它将数据和操作数据的函数结合在一起,并使其免受外部干扰和误用。数据封装是数据隐藏的重要面向对象编程概念。数据封装是一种将数据和使用数据的函数结合在一起的机制;
多态性意味着有多种形式。通常,多态发生在类之间存在层级关系且这些类有继承关系的时候。C++ 多态性是指不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。考虑下面的例子,一个基类派生了其他的两类: #include <iostream> using namespace std; class Shape { protected: int width, height;
C++ 允许在同一范围内对一个函数名或一个操作符指定多个定义,分别被称为函数重载和操作符重载。重载声明是在同一的范围内对先前已经声明的相同函数名的声明,除非这两个声明有不同的参数和明显不同的定义(实现方式)。当你调用一个重载的函数或操作符时,编译器通过比较用来调用函数或操作符的指定的参数类型来确定使用最合适的定义。
C++ 编程的主要目的是将面向对象的思想引进到 C 编程语言中,类是 C++ 的核心特征,用来支持面向对象编程,类通常被称为用户定义的类型。类是用于指定一个对象的形式,它将数据表示和用于处理数据的方法组合成一个整洁的包。一个类的数据和函数统称为类的成员。C++ 类的定义当你定义了一个类,你就定义一个数据类型的蓝图。
C/C++ 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构,但结构体(structure)是一种用户定义的数据类型,允许你将不同类型的数据项放在一起。 结构用来表示一条记录。假设你想在图书馆中找一本书,您可能需要查找每本书的以下属性:TitleAuthorSubjectBook ID 定义一个结构体定义一个结构体,您必须使用结构体声明。
C++ 标准库没有提供一个合适的日期类型。C++ 从 C 中继承了针对日期和时间的结构和功能,为了访问与日期和时间相关的功能和结构,需要在 C++ 程序中包括 <ctime> 头文件。这里有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。clock_t,size_t 和 time_t 类型能够以某种类型的整数表示系统时间和日期。
C++ 指针学起来非常容易和有趣。一些 C++ 的任务用指针执行非常容易,诸如动态分配内存的 C++ 工作,如果没有指针将无法执行。 如你所知,每个变量有一个内存位置,每个内存位置都有它的地址定义,这个地址定义可以使用表示内存中地址的和运算符 (&) 进行访问。下面我们将打印定义的变量的地址: #include <iostream> using namespace std;
C++ 提供了以下两种类型的字符串表示形式: C 样式字符串 用标准 C++ 介绍的标准字符串类型 C 样式字符串C 样式字符串源于 C 语言,在 C++ 中仍然被支持。这个串实际是一个字符的一维数组,这个数组以一个空字符 ‘\0’ 结束。因此以 null 结尾的字符串包含由字符组成的字符串,此字符串后跟着一个 null。