C++ 数据封装
C++ 数据封装数据封装(Data Encapsulation)是面向对象编程(OOP)的一个基本概念,它通过将数据和操作数据的函数封装在一个类中来实现。这种封装确保了数据的私有性和完整性,防止了外部代码对其直接访问和修改。所有的 C++ 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。 封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制。C++ 通过创建类来支持封装和数据隐藏(public、protected、private)。我们已经知道,类包含私有成员(private)、保护成员(protected)和公有成员(public)成员。默认情况下,在类中定义的所有项目都是私有的。例如: class Box{public: double...
C++ 数字
C++ 数字 通常,当我们需要用到数字时,我们会使用原始的数据类型,如 int、short、long、float 和 double 等等。这些用于数字的数据类型,其可能的值和数值范围,我们已经在 C++ 数据类型一章中讨论过。 C++ 定义数字我们已经在之前章节的各种实例中定义过数字。下面是一个 C++ 中定义各种类型数字的综合实例: 实例 #include using namespace std; int main (){// 数字定义short s; int i; long l; float f; double d; // 数字赋值s = 10; i = 1000; l = 1000000; f = 230.47; d = 30949.374; // 数字输出cout << “short s :” << s << endl; cout << “int i :”...
C++ 教程
C++ 教程 C++ 是一种高级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Windows、MAC 操作系统以及 UNIX 的各种版本。本教程通过通俗易懂的语言来讲解 C++ 编程语言。现在开始学习 C++ 编程!C++ 在线工具 谁适合阅读本教程?本教程是专门为初学者打造的,帮助他们理解与 C++ 编程语言相关的基础到高级的概念。阅读本教程前,您需要了解的知识:在您开始练习本教程中所给出的各种实例之前,您需要对计算机程序和计算机程序设计语言有基本的了解。编译/执行 C++ 程序 实例 #include using namespace std;int main(){cout << “Hello, world!” << endl; return 0;} 运行实例 » 你可以用 “\n” 代替以上代码里的 endl。 实例 #include using namespace std;int...
C++ 接口(抽象类)
C++ 接口(抽象类)接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的,如下所示: class Box{public: // 纯虚函数virtual double getVolume() = 0; private: double length; // 长度double breadth; // 宽度double height; // 高度}; 设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对象,它只能作为接口使用。如果试图实例化一个抽象类的对象,会导致编译错误。因此,如果一个 ABC 的子类需要被实例化,则必须实现每个纯虚函数,这也意味着 C++ 支持使用...
C++ 指针
C++ 指针学习 C++ 的指针既简单又有趣。通过指针,可以简化一些 C++ 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址: 实例 #include using namespace std; int main (){int var1; char var2[10]; cout << “var1 变量的地址: “; cout << &var1 << endl; cout << “var2 变量的地址: “; cout << &var2 << endl; return 0;} 当上面的代码被编译和执行时,它会产生下列结果: var1 变量的地址: 0xbfebd5c0var2 变量的地址:...
C++ 循环
C++ 循环 有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的一般形式: 循环类型C++ 编程语言提供了以下几种循环类型。点击链接查看每个类型的细节。 循环类型描述while 循环当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。for 循环多次执行一个语句序列,简化管理循环变量的代码。do…while 循环除了它是在循环主体结尾测试条件外,其他与 while 语句类似。嵌套循环您可以在 while、for 或 do..while 循环内使用一个或多个循环。 循环控制语句循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。C++ 提供了下列的控制语句。点击链接查看每个语句的细节。 控制语句描述break 语句终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch...
C++ 引用
C++ 引用引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++ 引用 vs 指针引用很容易与指针混淆,它们之间有三个主要的不同: 不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。引用必须在创建时被初始化。指针可以在任何时间被初始化。 C++ 中创建引用试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如: int i = 17; 我们可以为 i 声明引用变量,如下所示: int& r = i;double& s = d; 在这些声明中,& 读作引用。因此,第一个声明可以读作 “r 是一个初始化为 i 的整型引用”,第二个声明可以读作 “s 是一个初始化为 d 的 double 型引用”。下面的实例使用了 int 和 double...
C++ 异常处理库 <stdexcept>
C++ 异常处理库 是 C++ 标准库中的一个头文件,它定义了一组标准异常类,用于处理程序运行时的错误情况。异常是程序运行时发生的错误,它们可以被捕获并处理,以避免程序的非正常终止。 头文件定义了一组从 std::exception 派生的异常类,这些类提供了一种标准的方式来报告和处理错误。语法要使用 中的异常类,首先需要包含这个头文件:#include 然后,你可以使用这些异常类来抛出和捕获异常。例如:throw std::runtime_error(“An error occurred”);异常类 头文件定义了以下异常类: std::exception:所有标准异常类的基类。std::bad_exception:当异常处理过程中发生错误时抛出。std::bad_alloc:当内存分配失败时抛出。std::bad_cast:当类型转换失败时抛出。std::bad_typeid:当 typeid...
C++ 异常处理
C++ 异常处理异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。 如果有一个块抛出一个异常,捕获异常的方法会使用 try 和 catch 关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。使用 try/catch 语句的语法如下所示: try{// 保护代码}catch( ExceptionName e1 ){// catch 块}catch( ExceptionName e2 ){// catch 块}catch( ExceptionName eN...
C++ 常量
C++ 常量 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。常量可以是任何的基本数据类型,可分为整型数字、浮点数字、字符、字符串和布尔值。常量就像是常规的变量,只不过常量的值在定义后不能进行修改。 整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写,U 和 L 的顺序任意。下面列举几个整数常量的实例: 212 // 合法的215u // 合法的0xFeeL // 合法的078 // 非法的:8 不是八进制的数字032UU // 非法的:不能重复后缀 以下是各种类型的整数常量的实例: 85 // 十进制0213 // 八进制0x4b // 十六进制30...