Learning Path
浏览 C++ 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
213
C++ 实例 - 交换两个数 C++ 实例 以下我们使用两种方法来交换两个变量:使用临时变量与不使用临时变量。 实例 - 使用临时变量[mycode3 type='js'] #include using namespace std; int main() { int a = 5, b = 10, temp; cout..
C++ 实例 - 判断元音/辅音 C++ 实例 英语有 26 个字母,元音只包括 a、e、i、o、u 这五个字母,其余的都为辅音。y是半元音、半辅音字母,但在英语中都把他当作辅音。 实例 1[mycode3 type='js'] #include using namespace std; int main() { char c; bool ischar; int isLowe..
C++ 实例 C++ 实例 - 输出 'Hello, World!' C++ 实例 - 标准输入输出 C++ 实例 - 输出换行 C++ 实例 - 实现两个数相加 C++ 实例 - 创建不同类型的变量 C++ 实例 - 求商及余数 C++ 实例 - 查看 int, float, double 和 char 变量大小 C++ 实例 - 交换两个数 C++ 实例 - 判断一个数是奇数还是偶数 C++ 实例 ..
C++ 异常处理 异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。 异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。 try: try 块中的..
C++ 文件和流 到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。 本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 ifstream 该数据类型表示输入文件流,用于从文..
C++ for 循环 C++ 循环 for 循环允许您编写一个执行特定次数的循环的重复控制结构。 语法 C++ 中 for 循环的语法: for ( init; condition; increment ) { statement(s); } 下面是 for 循环的控制流: init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,..
C++ 友元函数 C++ 类 & 对象 类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元函数的原型有在类的定义中出现过,但是友元函数并不是成员函数。 友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。 如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字 friend,如下..
C++ 指针调用 C++ 函数 向函数传递参数的指针调用方法,把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 按指针传递值,参数指针被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap() 中,您需要声明函数参数为指针类型,该函数用于交换参数所指向的两个整数变量的值。 // 函数定义 void swap(int *x, int *y) { ..
C++ 引用调用 C++ 函数 向函数传递参数的引用调用方法,把引用的地址复制给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。 按引用传递值,参数引用被传递给函数,就像传递其他值给函数一样。因此相应地,在下面的函数 swap() 中,您需要声明函数参数为引用类型,该函数用于交换参数所指向的两个整数变量的值。 // 函数定义 void swap(int &x, int &a..
C++ 传值调用 C++ 函数 向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。 默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数 swap() 定义如下: [mycode3 type='cpp'] // 函数定义 void swap(int x, int y) { ..
C++ 函数 函数是一组一起执行一个任务的语句。每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。 函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。 C++ 标准库提供了大量的程序可以调用的内置函数。例如,函数 str..
C++ goto 语句 C++ 循环 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。 注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。 语法 C++ 中 goto 语句的语法: goto label; .. . label: statement; 在这里,label ..
C++ if...else 语句 C++ 判断 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 语法 C++ 中 if...else 语句的语法: if(boolean_expression) { // 如果布尔表达式为真将执行的语句 } else { // 如果布尔表达式为假将执行的语句 } 如果布尔表达式为 true,则执行 if 块内的代码。如果布尔表达式为 ..
C++ if 语句 C++ 判断 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 语法 C++ 中 if 语句的语法: if(boolean_expression) { // 如果布尔表达式为真将执行的语句 } 如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。 C 语言把任何非零和非空的值假定为 true,..
C++ 自增自减运算符 C++ 运算符 自增运算符 ++ 会把操作数加 1,自减运算符 -- 会把操作数减 1。因此: x = x+1; 等同于 x++; 同样的: x = x-1; 等同于 x--; 无论是自增运算符还是自减运算符,都可以放在操作数的前面(前缀)或后面(后缀)。例如: x = x+1; 可以写成: ++x; // 前缀形式 或者: x++; // 后缀形式 前缀形式与后缀形..
C++ 继承 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。 继承代表了 is a 关系。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。 代码如下: [m..
C++ 内联函数 C++ 类 & 对象 C++ 内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。 对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编译器需要重新更换一次所有的代码,否则将会继续使用旧的函数。 如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,..
C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。 C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 '= 0' 来指定的,如下所示: [mycode3 type='cpp'] class Box { publ..
C++ 简介 C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。 C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。 C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的,进一步扩充和完善了 C 语言,最初命名为带类的 C,后来在 1983 年更名为 C++。 C++ 是 C 的一个超集,事实上,任何..
C++ 算法库 <algorithm> C++ 标准库中的 <algorithm> 头文件提供了一组用于操作容器(如数组、向量、列表等)的算法。这些算法包括排序、搜索、复制、比较等,它们是编写高效、可重用代码的重要工具。 <algorithm> 头文件定义了一组模板函数,这些函数可以应用于任何类型的容器,只要容器支持迭代器。这些算法通常接受两个或更多..
C++ <array> at 函数 C++ 容器类 <array> 在访问 array 元素的所有方式中,at 是最安全的一种,因为它提供了边界检查。 at 是容器类的成员函数,用于返回指定位置的元素,同时进行边界检查。如果索引越界,会抛出 std::out_of_range 异常。 at 实现了安全的元素访问,让你在运行时能够捕获并处理越界错误。 单词释义: at 表示..
C++ <array> back 函数 C++ 容器类 <array> 在 array 的各种操作中,back 是一个非常实用的函数,用于获取最后一个元素。 back 是容器类的成员函数,用于返回容器的最后一个元素。它相当于 at(size()-1) 或 operator[](size()-1),但语义更清晰。 back 提供了直观的方式来访问容器的末尾元素。 单词释义: ..
C++ <array> data 函数 C++ 容器类 <array> data 是 array 中一个非常特殊的函数,它返回指向底层数组的指针,让你能够像使用 C 数组一样使用 array。 data 是容器类的成员函数,用于返回指向容器内部数据存储的指针。这使得 array 可以与 C 风格 API 或其他需要原始指针的代码互操作。 data 提供了 array 与 C..
C++ <array> fill 函数 C++ 容器类 <array> fill 是 array 中用于填充所有元素的函数,可以快速将所有元素设置为同一个值。 fill 是容器类的成员函数,用于将容器中的所有元素设置为指定的值。这是一个 O(n) 操作,需要遍历所有元素。 fill 是初始化或重置 array 的快捷方式。 单词释义: fill 表示'填充'..