基本語(yǔ)法

2018-08-12 22:03 更新

基本語(yǔ)法

C++ 程序,它可以被定義為一個(gè)對(duì)象集合,彼此之間通過調(diào)用對(duì)方的方法進(jìn)行通信?,F(xiàn)在讓我們簡(jiǎn)要地看看類,對(duì)象,方法和實(shí)例變量的意思。

  • 對(duì)象: 對(duì)象具有狀態(tài)和行為。例子:一只狗擁有的狀態(tài)——顏色、名稱、品種以及行為——搖尾巴,吠叫,吃。對(duì)象是類的一個(gè)實(shí)例。
  • 類:一個(gè)類可以定義為一個(gè)模板/復(fù)寫紙,它描述的是它所支持類型對(duì)象的行為或者狀態(tài)。
  • 方法:一個(gè)方法基本上是一個(gè)行為。一個(gè)類可以包含許多方法。在這些方法中,你可以編寫你的業(yè)務(wù)邏輯代碼,你可以進(jìn)行數(shù)據(jù)操作。
  • 實(shí)例變量:每個(gè)對(duì)象都有其獨(dú)特的實(shí)例變量集合。通過給這些實(shí)例變量進(jìn)行賦值,從而這個(gè)對(duì)象的狀態(tài)被創(chuàng)建了。

程序結(jié)構(gòu)

首先讓我們看一個(gè)簡(jiǎn)單的示例代碼,這個(gè)程序會(huì)輸出 Hello World。

    #include <iostream>
    using namespace std;

    // main() is where program execution begins.

    int main()
    {
        cout << "Hello World"; // prints Hello World
        return 0;
    }

讓我們來(lái)看下以上程序的各個(gè)部分:

  • C++ 語(yǔ)言定義了幾個(gè)頭,其中包含的信息對(duì)你的程序要么是必要的或要么是有用的。對(duì)于這個(gè)程序,頭部 <iostream>是必要的。
  • using namespace std; 這一行告訴編譯器使用 std 命名空間。命名空間是 C++ 中一個(gè)相對(duì)較新的特性。
  • 下一行 //main() is where program execution begins 是一個(gè)在 C++ 可以用來(lái)表示注釋的語(yǔ)句。單可以使用 // 進(jìn)行單行注釋。
  • int main() 這一行是程序的主方法,也是程序執(zhí)行的入口。
  • 下一行 cout << "This is my first C++ program" 會(huì)將 ”This is my first C++ program” 顯示在屏幕上。
  • 下一行 return 0; 會(huì)終止 main() 函數(shù)的執(zhí)行,并將 0 返回給調(diào)用進(jìn)程。

編譯和執(zhí)行 C++ 程序

接著讓我們看看如何保存源文件,編譯和執(zhí)行程序。請(qǐng)按照如下的步驟執(zhí)行:

  • 打開一個(gè)文本編輯器,添加上面的代碼;
  • 保存該文件,并以 hello.cpp 為該文件名;
  • 打開一個(gè)命令行程序,接著切換目錄為你保存 hello.cpp 這個(gè)文件的目錄;
  • 在命令行中輸入 g++ hello.cpp,接著按下回車按鍵,編譯你的程序。如果你的代碼中沒有錯(cuò)誤,在命令行控制窗口中提示符將會(huì)跳轉(zhuǎn)到下一行,并將生成一個(gè) a.out 的可執(zhí)行文件。
  • 接著,輸入 a.out 來(lái)運(yùn)行你的程序;
  • 你將會(huì)在你當(dāng)前的窗口中看到輸出 Hello World。
$ g++ hello.cpp
$ ./a.out
Hello World

確保 g++ 在你的路徑和你目錄包含文件 hello.cpp 運(yùn)行它。

你可以編譯 C/C++ 程序使用 makefile。

C++ 中的分號(hào)和語(yǔ)句塊

在 C++ 中分號(hào)是終止符。也就是說,每一個(gè)獨(dú)立語(yǔ)句都必須以分號(hào)結(jié)束。它表明了一個(gè)邏輯實(shí)體的結(jié)束。

例如,如下是三個(gè)不同的語(yǔ)句:

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

一個(gè)語(yǔ)句塊是一組邏輯上連接的語(yǔ)句,它們被左右花括號(hào)包圍住。例如:

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

C++ 并不是把一行的結(jié)束作為一個(gè)終結(jié)符。由于這個(gè)原因,它也就不在意你在一行中哪里放置你的語(yǔ)句。例如:

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

這個(gè)也等同于:

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

C++ 標(biāo)識(shí)符

一個(gè) C++ 標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)一個(gè)變量、函數(shù)、類、模塊,或任何其他用戶定義的項(xiàng)目。一個(gè)標(biāo)識(shí)符以字母 A 到 Z 或者 a 到 z 或下劃線(_)開始,接著后面是零個(gè)或多個(gè)字母,下劃線,數(shù)字(0 - 9)。

C++ 不允許用一些特殊符號(hào)作為標(biāo)識(shí)符,如@、 $、%。C++是一種區(qū)分大小寫的編程語(yǔ)言。因此,Manpowermanpower 在 C++ 中是兩個(gè)不同的標(biāo)識(shí)符。

如下是一些合法的標(biāo)識(shí)符的例子:

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

C++ 關(guān)鍵字

如下的列表展示了 C++ 中的關(guān)鍵字。這些關(guān)鍵字不能用作常量或變量或其他標(biāo)識(shí)符的名稱。

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 ?

三元符

有些字符有其他的表示含義,稱為三元字符序列。三元字符是由三個(gè)字符組成,當(dāng)表示一個(gè)字符序列并且該序列總是以兩個(gè)問號(hào)開始。

三元符在任何地方出現(xiàn)時(shí)都會(huì)被轉(zhuǎn)義,包括在字符串字面值和字符字面值,注釋,和預(yù)處理器指令中。

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

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

所有的編譯器不支持三元符,也不建議使用,因?yàn)樗鼈兒苋菀鬃屓嘶煜?/p>

C++ 中的空格

只包含空格,可能有注釋的行被稱為一個(gè)空行,并且 C++ 編譯器會(huì)完全忽略它。

空格是 C++ 中使用的術(shù)語(yǔ)來(lái)描述空格、制表符、換行符和注釋??崭駥⒁徊糠肿⑨屌c其他的部分分隔開,從而使編譯器能夠識(shí)別一個(gè)元素在語(yǔ)句中的位置,例如 int 的結(jié)束,和下一個(gè)元素的開始位置。因此,在下面的語(yǔ)句中,

    int age;

在 int 和 age 之間必須有至少一個(gè)空格字符(通常是一個(gè)空格),這樣編譯器才能夠區(qū)分它們。另一方面,在如下語(yǔ)句中

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

在 fruit 和 = 之間,或者 = 和 apples 之間是不需要空格的,盡管這樣做不會(huì)有什么影響。如果為了使程序閱讀起來(lái)更方便,你可以在它們之間添加空格。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)