C++教程 第7页

C++ if 语句-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ if 语句

C++ if 语句 C++ 判断 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 语法 C++ 中 if 语句的语法: if(boolean_expression) { // 如果布尔表达式为真将执行的语句 } 如果布尔表达式为 true,则 if 语句内的代码块将被执行。如果布尔表达式为 false,则 if 语句结束后的第一组代码(闭括号后)将被执行。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 流程图 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // 使用 if 语句检查布尔条件 if( a < 20 ) { // 如果条件为真,则输出下面的语句 cout << "a 小于 20" << endl; } cout << "a 的值是 " << a << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 小于 20 a 的值是 10 C++ 判断

C++ goto 语句-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ goto 语句

C++ goto 语句 C++ 循环 goto 语句允许把控制无条件转移到同一函数内的被标记的语句。 注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。 语法 C++ 中 goto 语句的语法: goto label; .. . label: statement; 在这里,label 是识别被标记语句的标识符,可以是任何除 C++ 关键字以外的纯文本。标记语句可以是任何语句,放置在标识符和冒号(:)后边。 流程图 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // do 循环执行 LOOP:do { if( a == 15) { // 跳过迭代 a = a + 1; goto LOOP; } cout << "a 的值:" << a << endl; a = a + 1; }while( a < 20 ); return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19 goto 语句一个很好的作用是退出深嵌套例程。例如,请看下面的代码片段: for(...) { for(...)...

C++ do…while 循环-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ do…while 循环

C++ do…while 循环 C++ 循环 不像 for 和 while 循环,它们是在循环头部测试循环条件。do…while 循环是在循环的尾部检查它的条件。 do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。 语法 C++ 中 do…while 循环的语法: do { statement(s); }while( condition ); 请注意,条件表达式出现在循环的尾部,所以循环中的 statement(s) 会在条件被测试之前至少执行一次。 如果条件为真,控制流会跳转回上面的 do,然后重新执行循环中的 statement(s)。这个过程会不断重复,直到给定条件变为假为止。 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // do 循环执行 do { cout << "a 的值:" << a << endl; a = a + 1; }while( a < 20 ); return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19 C++ 循环

C++ for 循环-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ for 循环

C++ for 循环 C++ 循环 for 循环允许您编写一个执行特定次数的循环的重复控制结构。 语法 C++ 中 for 循环的语法: for ( init; condition; increment ) { statement(s); } 下面是 for 循环的控制流: init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。 实例 #include <iostream> using namespace std; int main () { // for 循环执行 for( int a = 10; a < 20; a = a + 1 ) { cout << "a 的值:" << a << endl; } return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19 C++ 循环

C++ while 循环-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ while 循环

C++ while 循环 C++ 循环 只要给定的条件为真,while 循环语句会重复执行一个目标语句。 语法 C++ 中 while 循环的语法: while(condition) { statement(s); } 在这里,statement(s) 可以是一个单独的语句,也可以是几个语句组成的代码块。condition 可以是任意的表达式,当为任意非零值时都为真。当条件为真时执行循环。 当条件为假时,程序流将继续执行紧接着循环的下一条语句。 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // while 循环执行 while( a < 20 ) { cout << "a 的值:" << a << endl; a++; } return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19 C++ 循环

C++ break 语句-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ break 语句

C++ break 语句 C++ 循环 C++ 中 break 语句有以下两种用法: 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止 switch 语句中的一个 case。 如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。 语法 C++ 中 break 语句的语法: break; 流程图 实例 #include <iostream> using namespace std; int main () { // 局部变量声明 int a = 10; // do 循环执行 do { cout << "a 的值:" << a << endl; a = a + 1; if( a > 15) { // 终止循环 break; } }while( a < 20 ); return 0; } 当上面的代码被编译和执行时,它会产生下列结果: a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15 C++ 循环

C++ 类的静态成员-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ 类的静态成员

C++ 类的静态成员 C++ 类 & 对象 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。 静态成员在类的所有对象中是共享的。如果不存在其他的初始化语句,在创建第一个对象时,所有的静态数据都会被初始化为零。我们不能把静态成员放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化,如下面的实例所示。 下面的实例有助于更好地理解静态数据成员的概念: #include <iostream> using namespace std; class Box { public: static int objectCount; // 构造函数定义 Box(double l=2.0, double b=2.0, double h=2.0) { cout <<"Constructor called." << endl; length = l; breadth = b; height = h; // 每次创建对象时增加 1 objectCount++; } double Volume() { return length * breadth * height; } private: double length; // 长度 double breadth; // 宽度 double height; // 高度 }; // 初始化类 Box 的静态成员 int Box::objectCount = 0; int main(void) { Box Box1(3.3, 1.2, 1.5); // 声明 box1 Box Box2(8.5, 6.0, 2.0); // 声明 box2 // 输出对象的总数 cout << "Total objects: " << Box::objectCount << endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: Constructor called. Constructor...

C++ 下标运算符 [] 重载-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ 下标运算符 [] 重载

C++ 下标运算符 [] 重载 C++ 重载运算符和重载函数 下标操作符 [] 通常用于访问数组元素。重载该运算符用于增强操作 C++ 数组的功能。 下面的实例演示了如何重载下标运算符 []。 #include <iostream> using namespace std; const int SIZE = 10; class safearay { private: int arr[SIZE]; public: safearay() { register int i; for(i = 0; i < SIZE; i++) { arr[i] = i; } } int& operator[](int i) { if( i > SIZE ) { cout << "索引超过最大值" <<endl; // 返回第一个元素 return arr[0]; } return arr[i]; } }; int main() { safearay A; cout << "A[2] 的值为 : " << A[2] <<endl; cout << "A[5] 的值为 : " << A[5]<<endl; cout << "A[12] 的值为 : " << A[12]<<endl; return 0; } 当上面的代码被编译和执行时,它会产生下列结果: $ g++ -o test test.cpp $ ./test A[2] 的值为 : 2 A[5] 的值为 : 5...

C++ 中的 this 指针-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ 中的 this 指针

C++ this 指针 C++ 类 & 对象 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。 友元函数没有 this 指针,因为友元不是类的成员。只有成员函数才有 this 指针。 下面的实例有助于更好地理解 this 指针的概念: #include <iostream> using namespace std; class Box { public: // 构造函数定义 Box(double l=2.0, double b=2.0, double h=2.0) { cout <<"Constructor called." << endl; length = l; breadth = b; height = h; } double Volume() { return length * breadth * height; } int compare(Box box) { return this->Volume() > box.Volume(); } private: double length; // Length of a box double breadth; // Breadth of a box double height; // Height of a box }; int main(void) { Box Box1(3.3, 1.2, 1.5); // Declare box1 Box Box2(8.5, 6.0, 2.0); // Declare box2 if(Box1.compare(Box2)) { cout << "Box2 is smaller...

C++ 类成员访问运算符 -> 重载-国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码

C++ 类成员访问运算符 -> 重载

C++ 类成员访问运算符 -> 重载 C++ 重载运算符和重载函数 类成员访问运算符( -> )可以被重载,但它较为麻烦。它被定义用于为一个类赋予”指针”行为。运算符 -> 必须是一个成员函数。如果使用了 -> 运算符,返回类型必须是指针或者是类的对象。 运算符 -> 通常与指针引用运算符 * 结合使用,用于实现”智能指针”的功能。这些指针是行为与正常指针相似的对象,唯一不同的是,当您通过指针访问对象时,它们会执行其他的任务。比如,当指针销毁时,或者当指针指向另一个对象时,会自动删除对象。 间接引用运算符 -> 可被定义为一个一元后缀运算符。也就是说,给出一个类: class Ptr{ //... X * operator->(); }; 类 Ptr 的对象可用于访问类 X 的成员,使用方式与指针的用法十分相似。例如: void f(Ptr p ) { p->m = 10 ; // (p.operator->())->m = 10 } 语句 p->m 被解释为 (p.operator->())->m。同样地,下面的实例演示了如何重载类成员访问运算符 ->。 #include <iostream> #include <vector> using namespace std; // 假设一个实际的类 class Obj { static int i, j; public: void f() const { cout << i++ << endl; } void g() const { cout << j++ << endl; } }; // 静态成员定义 int Obj::i = 10; int Obj::j = 12; // 为上面的类实现一个容器 class ObjContainer { vector<Obj*> a; public: void add(Obj* obj) { a.push_back(obj); // 调用向量的标准方法 } friend class SmartPointer; };...