C++基本语法



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

  • 对象 − 对象具有状态和行为。例如:狗具有状态(颜色、名称、品种)以及行为(摇尾、吠叫、吃东西)。对象是类的实例。

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

  • 方法 − 方法基本上是一种行为。一个类可以包含许多方法。在方法中编写逻辑,操作数据,并执行所有操作。

  • 实例变量 − 每个对象都有自己独特的一组实例变量。对象的状体是由分配给这些实例变量的值创建的。

C++程序结构

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

  • 头文件包含部分:这是我们包含所有所需头文件的部分,我们将在这个程序中使用这些头文件的函数。
  • 命名空间部分:这是我们使用命名空间的部分。
  • main()部分:在这个部分,我们编写我们的主代码。main()函数是任何C++编程代码的入口点,程序的执行从此处开始。

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

示例

让我们来看一段简单的代码,它将打印单词Hello World

#include <iostream>
using namespace std;

// main() is where program execution begins.
int main() {
   cout << "Hello World"; // prints Hello World
   return 0;
}

示例解释

让我们看看上面程序的各个部分:

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

  • 语句using namespace std;告诉编译器使用std命名空间。命名空间是最近才添加到C++中的。

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

  • 语句int main()是程序执行开始的主函数。

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

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

编译和执行C++程序

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

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

  • 将文件保存为:hello.cpp

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

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

  • 现在,键入“a.out”运行程序。

  • 您将能够看到窗口上打印的“Hello World”。

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

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

您可以使用makefile编译C/C++程序。有关更多详细信息,您可以查看我们的“Makefile 教程”

C++中的分号和块

在C++中,分号是语句终止符。也就是说,每个单独的语句都必须以分号结尾。它表示一个逻辑实体的结束。

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

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

块是一组逻辑上连接的语句,它们被起始和结束大括号包围。例如:

{
   cout << "Hello World"; // prints Hello World
   return 0;
}

C++不识别行尾作为终止符。因此,您在一行中放置语句的位置无关紧要。例如:

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

与以下相同

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

C++标识符

C++标识符是用于标识变量、函数、类、模块或任何其他用户定义项的名称。标识符以字母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  

三元组

一些字符具有替代表示形式,称为三元组序列。三元组是一个三字符序列,它表示单个字符,并且该序列总是以两个问号开头。

三元组在任何出现的地方都会被扩展,包括字符串文字和字符文字、注释和预处理器指令中。

以下是最常用的三元组序列:

三元组 替换
??= #
??/ \
??' ^
??( [
??) ]
??! |
??< {
??> }
??- ~

并非所有编译器都支持三元组,并且由于其令人困惑的性质,建议不要使用它们。

C++中的空白

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

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

语句1

int age;

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

语句2

fruit = apples + oranges;   // Get the total fruit

在上面的语句2中,fruit和=之间,以及=和apples之间不需要空格字符,尽管为了可读性,您可以随意添加一些空格。

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

C++除了支持过程式编程方法外,还支持面向对象编程方法。

示例

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

#include <iostream>
using namespace std;

class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

int main() {
  // Create an object of Numbers class
  Numbers num;

  // Set values
  num.setValues(10, 20);

  // Display the values
  num.display();

  // Find the addition
  int sum = num.addition();
  cout << "Sum of numbers: " << sum << endl;

  return 0;
}

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

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

1. 类声明

一个是对象的模板,或者可以说类是生产对象的工厂。它是一种自定义数据类型,用于构建对象的结构。

类声明包含以下部分

  • 访问修饰符:C++支持三种类型的访问修饰符:private(私有)、public(公有)和protected(保护)。数据成员和成员函数的可访问性由访问修饰符定义。
  • 数据成员和成员函数:在类声明中使用的变量称为数据成员,成员函数是在数据成员上操作的函数。

示例

根据上述示例,类声明的以下部分:

class Numbers {
 private:
  int a;
  int b;

 public:
  // Function to set values
  void setValues(int x, int y) {
    a = x;
    b = y;
  }

  // Function to add these numbers
  double addition() { return a + b; }

  // Function to display values
  void display() { cout << "a: " << a << ", b: " << b << endl; }
};

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

private:
  int a;
  int b;

以下是类中使用的成员函数:

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

2. 对象创建

在上例中,以下语句是对象创建语句:

Numbers num;
广告