Cplusplus 简明教程
C++ Basic Syntax
当我们考虑一个 C++ 程序时,可以将其定义为通过调用彼此的方法进行通信的对象集合。现在让我们简要了解一下类、对象、方法和即时变量的含义。
-
Object − 对象具有状态和行为。示例:狗具有状态(颜色、名称、品种)以及行为(摇尾巴、吠叫、进食)。对象是类的实例。
-
Class − 类可以定义为一个模板/蓝图,用于描述其类型支持的对象的行为/状态。
-
Methods − 方法基本上是一种行为。一个类可以包含多个方法。逻辑编写在方法中,数据在方法中被操作,所有操作都在方法中执行。
-
Instance Variables − 每个对象都有自己唯一的一组实例变量。对象的状态由分配给这些实例变量的值创建。
C++ Program Structure
让我们看一个简单的代码,它将打印单词 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 值。
Compile and Execute C++ Program
我们来看看如何保存文件、编译和运行程序。请按照下面给出的步骤操作 −
-
打开一个文本编辑器并添加代码,如上所述。
-
将文件另存为: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 Tutorial' 。
Semicolons and Blocks in 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++ Identifiers
C++ 标识符是用于标识变量、函数、类、模块或任何其他用户定义项的名称。标识符以字母 A 到 Z 或 a 到 z 或下划线 (_) 开头,后面跟零个或多个字母、下划线和数字(0 到 9)。
C 语言不允许标识符中出现诸如 @、$ 和 % 等标点字符。C 语言是一种区分大小写的编程语言。因此,在 C++ 中, Manpower 和 manpower 是两个不同的标识符。
以下是一些可接受标识符的示例−
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
C++ Keywords
以下列表显示了 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 |
Trigraphs
几个字符具有称为三字符序列的备用表示形式。三字符序列是一个表示单个字符的三字符序列,该序列始终以两个问号开头。
三字符序列在它们出现的任何地方进行扩展,包括在字符串文字和字符文字、注释和预处理程序指令中。
以下是使用最频繁的三字符序列−
Trigraph |
Replacement |
??= |
# |
??/ |
\ |
??' |
^ |
??( |
[ |
??) |
] |
??! |
|
??< |
|
{ |
??> |
} |
??- |
所有编译器都不支持三字符序列,并且不建议使用它们,因为它们容易混淆。