C++ 基本语法怎么写?新手入门规则有哪些?

文章导读
Previous Quiz Next 当我们考虑一个 C++ 程序时,它可以被定义为通过调用彼此的方法来通信的对象集合。现在让我们简要了解一下 class、object、method 和 instance variable 的含义。
📋 目录
  1. C++ 程序结构
  2. 编译和执行 C++ 程序
  3. C++ 中的分号和块
  4. C++ 标识符
  5. C++ 关键字
  6. 三字符序列
  7. C++ 中的空白字符
  8. 面向对象方法的 C++ 程序结构
  9. 面向对象方法的 C++ 程序结构组成部分
A A

C++ 基本语法



Previous
Quiz
Next

当我们考虑一个 C++ 程序时,它可以被定义为通过调用彼此的方法来通信的对象集合。现在让我们简要了解一下 class、object、method 和 instance variable 的含义。

  • Object − Object 具有状态和行为。例如:一只狗有状态(颜色、名字、品种)以及行为(摇尾巴、吠叫、吃东西)。Object 是 class 的一个实例。

  • Class − Class 可以被定义为一个模板/蓝图,它描述了其类型对象所支持的行为或状态。

  • Methods − Method 基本上是一种行为。Class 可以包含许多 method。逻辑编写、数据操作以及所有动作执行都在 method 中进行。

  • Instance Variables − 每个 object 都有自己独特的 instance variables 集合。Object 的状态是由分配给这些 instance variables 的值创建的。

C++ 程序结构

C++ 程序的基本结构包括以下部分:

  • 头文件包含部分:这是我们包含程序中将要使用的所有必需头文件的部分。
  • Namespace 部分:这是我们使用 namespace 的部分。
  • main() 部分:在此部分,我们编写主要代码。main() function 是任何 C++ 程序代码的入口点,程序从这里开始执行。

要了解更多信息,请阅读:C++ Hello, World 程序。

示例

让我们看一个简单的代码,它会打印 Hello World 字样。

#include <iostream>
using namespace std;

// main() 是程序执行开始的地方。
int main() {
   cout << "Hello World"; // 打印 Hello World
   return 0;
}

示例解释

让我们看看上述程序的各个部分 −

  • C++ 语言定义了多个头文件,这些头文件包含程序所需或有用的信息。对于此程序,需要 <iostream> 头文件。

  • using namespace std; 告诉编译器使用 std namespace。Namespace 是 C++ 的较新特性。

  • 下一行 '// main() is where program execution begins.' 是 C++ 中的单行注释。单行注释以 // 开头,并在行尾结束。

  • int main() 是程序执行开始的 main function。

  • 下一行 cout << "Hello World"; 会导致屏幕上显示 "Hello World" 消息。

  • 下一行 return 0; 终止 main() function 并将其返回值为 0 给调用进程。

编译和执行 C++ 程序

让我们看看如何保存文件、编译并运行程序。请按照以下步骤操作 −

  • 打开文本编辑器并添加上述代码。

  • 将文件保存为:hello.cpp

  • 打开命令提示符并转到保存文件的目录。

  • 输入 'g++ hello.cpp' 并按回车键编译代码。如果代码中没有错误,命令提示符将进入下一行并生成 a.out 可执行文件。

  • 现在,输入 'a.out' 来运行程序。

  • 你将看到窗口上打印 ' Hello World '。

$ g++ hello.cpp
$ ./a.out
Hello World

确保 g++ 在你的路径中,并且你在包含 hello.cpp 文件的目录中运行它。

你可以使用 makefile 编译 C/C++ 程序。更多详情,请查看我们的 'Makefile Tutorial'。

C++ 中的分号和块

In C++, the semicolon is a statement terminator. That is, each individual statement must be ended with a semicolon. It indicates the end of one logical entity.

例如,以下是三个不同的语句 −

x = y;
y = y + 1;
add(x, y);

块是一组逻辑上相关的语句,用开大括号和闭大括号包围。例如 −

{
   cout << "Hello World"; // 打印 Hello World
   return 0;
}

C++ 不将行尾视为终止符。因此,在一行中放置语句的位置无关紧要。例如 −

x = y;
y = y + 1;
add(x, y);

与以下相同

x = y; y = y + 1; add(x, y);

C++ 标识符

C++ 标识符是用于标识变量、function、class、模块或其他任何用户定义项的名称。标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后跟零个或多个字母、下划线和数字 (0 到 9)。

C++ 不允许在标识符中使用标点符号,如 @、$ 和 %。C++ 是一种区分大小写的编程语言。因此,Manpowermanpower 在 C++ 中是两个不同的标识符。

以下是一些有效的标识符示例 −

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

C++ 关键字

以下列表显示了 C++ 中的保留字。这些保留字不能用作常量、变量或任何其他标识符名称。

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template  

三字符序列

少数字符有替代表示形式,称为三字符序列(trigraph sequence)。三字符序列是由三个字符组成的序列,表示单个字符,且序列总是以两个问号开头。

三字符序列会在任何出现的地方展开,包括字符串字面量和字符字面量中、在注释中以及在预处理器指令中。

以下是最常用的三字符序列 −

Trigraph Replacement
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~

并非所有编译器都支持三字符序列,而且由于其混淆性,不建议使用它们。

C++ 中的空白字符

仅包含空白字符(可能带有注释)的行被称为空行,C++ 编译器会完全忽略它。

空白字符是 C++ 中用来描述空格、制表符、换行符和注释的术语。空白字符将语句的一个部分与其他部分分隔开,并使编译器能够识别语句中一个元素(如 int)的结束位置以及下一个元素的开始位置。

语句 1

int age;

在上述语句中,int 和 age 之间必须至少有一个空白字符(通常是空格),以便编译器能够区分它们。

语句 2

fruit = apples + oranges;   // 获取总水果数量

在上述语句 2 中,fruit 和 = 之间,或 = 和 apples 之间不需要空白字符,尽管为了可读性,你可以自由添加一些。

面向对象方法的 C++ 程序结构

C++ 同时支持面向对象编程方法和过程式编程方法。

示例

此示例演示了基于面向对象方法的 C++ 程序。

#include <iostream>
using namespace std;

class Numbers {
 private:
  int a;
  int b;

 public:
  // 设置值的函数
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // 将这些数字相加的函数
  double addition() { return a + b; }

  // 显示值的函数
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

int main() {
  // 创建 Numbers class 的对象
  Numbers num;

  // 设置值
  num.setValues(10, 20);

  // 显示值
  num.display();

  // 计算和
  int sum = num.addition();
  cout << "Sum of numbers: " << sum << endl;

  return 0;
}

面向对象方法的 C++ 程序结构组成部分

面向对象方法的 C++ 程序结构的各个不同部分如下所示:

1. Class 声明

class 是对象的模板,或者我们可以说是产生对象的工厂。它是一种自定义数据类型,在其中为对象构建结构。

class 声明包含以下部分:

  • 访问修饰符:C++ 支持三种访问修饰符:privatepublicprotected。数据成员和成员函数的可访问性由访问修饰符定义。
  • 数据成员和成员函数:在 class 声明中使用的变量称为数据成员,成员函数是那些操作数据成员的函数。

示例

根据上面的示例,class 声明的以下部分 –

class Numbers {
 private:
  int a;
  int b;

 public:
  // 设置值的函数
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // 将这些数字相加的函数
  double addition() { return a + b; }

  // 显示值的函数
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

以下是在 private 访问修饰符下定义的数据成员,即这些数据成员可以被 class 内的成员函数使用 –

private:
  int a;
  int b;

以下是 class 中使用的成员函数 –

void setValues(int x, int y);
double addition();
void display();

2. 对象创建

在上面的示例中,以下语句是对象创建语句 –

Numbers num;