基本语法
基本语法
C++ 程序,它可以被定义为一个对象集合,彼此之间通过调用对方的方法进行通信。现在让我们简要地看看类,对象,方法和实例变量的意思。
- 对象: 对象具有状态和行为。例子:一只狗拥有的状态——颜色、名称、品种以及行为——摇尾巴,吠叫,吃。对象是类的一个实例。
- 类:一个类可以定义为一个模板/复写纸,它描述的是它所支持类型对象的行为或者状态。
- 方法:一个方法基本上是一个行为。一个类可以包含许多方法。在这些方法中,你可以编写你的业务逻辑代码,你可以进行数据操作。
- 实例变量:每个对象都有其独特的实例变量集合。通过给这些实例变量进行赋值,从而这个对象的状态被创建了。
程序结构
首先让我们看一个简单的示例代码,这个程序会输出 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 << "This is my first C++ program"
会将”This is my first C++ program”
显示在屏幕上。 - 下一行
return 0;
会终止main()
函数的执行,并将 0 返回给调用进程。
编译和执行 C++ 程序
接着让我们看看如何保存源文件,编译和执行程序。请按照如下的步骤执行:
- 打开一个文本编辑器,添加上面的代码;
- 保存该文件,并以 hello.cpp 为该文件名;
- 打开一个命令行程序,接着切换目录为你保存 hello.cpp 这个文件的目录;
- 在命令行中输入 g++ hello.cpp,接着按下回车按键,编译你的程序。如果你的代码中没有错误,在命令行控制窗口中提示符将会跳转到下一行,并将生成一个 a.out 的可执行文件。
- 接着,输入 a.out 来运行你的程序;
- 你将会在你当前的窗口中看到输出 Hello World。
$ g++ hello.cpp
$ ./a.out
Hello World
确保 g++ 在你的路径和你目录包含文件 hello.cpp 运行它。
你可以编译 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++
是一种区分大小写的编程语言。因此,Manpower
和 manpower
在 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 | Replacement |
---|---|
??= | # |
??/ | \ |
??' | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
所有的编译器不支持三元符,也不建议使用,因为它们很容易让人混淆。
C++ 中的空格
只包含空格,可能有注释的行被称为一个空行,并且 C++ 编译器会完全忽略它。
空格是 C++ 中使用的术语来描述空格、制表符、换行符和注释。空格将一部分注释与其他的部分分隔开,从而使编译器能够识别一个元素在语句中的位置,例如 int 的结束,和下一个元素的开始位置。因此,在下面的语句中,
int age;
在 int 和 age 之间必须有至少一个空格字符(通常是一个空格),这样编译器才能够区分它们。另一方面,在如下语句中
fruit = apples + oranges: //Get the total fruit
在 fruit 和 = 之间,或者 = 和 apples 之间是不需要空格的,尽管这样做不会有什么影响。如果为了使程序阅读起来更方便,你可以在它们之间添加空格。
更多建议: