程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 初識C++,與君初相識猶如故人歸

初識C++,與君初相識猶如故人歸

編輯:C++入門知識

初識C++,與君初相識猶如故人歸


先來寫一個最簡單的C++程序

// helloworld.cpp
#include <iostream>

int main() {
    std::cout << "Hello, Wrold!" << std::endl;
    return 0;
}

這段代碼反應了4個問題:

下面主要說一下預處理指令:生成一個C++程序有三步。首先,代碼在預處理器中運行,預處理器會識別代碼中的元信息;隨後,代碼被編譯成計算機可以識別的目標文件;最後,每一個目標文件鏈接在一起就變成了一個應用程序。預處理指令以#字符開始,如#include <iostream>,意思就是告訴預處理器:提取<iostream>頭文件中的所有內容供當前文件使用。<iostream>頭文件聲明了C++提供的輸入/輸入功能,只有程序包含了此頭文件,才能完成程序中想要輸出的Hello,World!文本。

注意:熟悉C的同學都知道頭文件是以.h結尾,比如<stdio.h>。在C++中,標准的頭文件省略了.h後綴,如<iostream>,但仍然包含了C中的標准頭文件,只是換了名字,比如原來的<stdio.h>變成了<cstdio>。

預處理指令還有#define、#ifdef、#ifndef、#endif等。例如:

#ifndef MYHEADER_H 
#define MYHEADER_H 
// ... 
#endif

這是為了避免重復包含頭文件的示例。

這裡要提到的是,如果編譯器支持#pragma once指令,則可以使用此指令代替上面的指令:

#pragma once
// ...

 

接下來簡單說一下std::語法:std::endl代表輸出流的結尾,會換行,如同\n字符。::被稱為作用域解析運算符,std指的是命名空間,他們合起來使用是為了解決不同代碼段之間的名稱沖突問題。例如我編寫了一段代碼,其中定義了一個fun()函數,然而在某天,我使用了第三方庫,裡面恰好也定義了一個fun()函數,那麼編譯器則無法判斷代碼中調用的fun()函數到底屬於哪個版本。因此我需要將自己的代碼放到一個命名空間中,首先定義命名空間:

namespace mycode {
    void fun();
}

當我使用fun()函數的時候,需要指明其命名空間,有兩種方法:

using namespace mycode;

int main() {
    fun();   // 調用的是我自己定義的fun()函數        
    return 0;
}

或者:

int main() {
    mycode::fun();   // 調用的是我自定義的fun()函數
    return 0;
}

現在就明白,cout輸出流是屬於std命名空間中的,所以寫成std::cout。順便提一下,輸入流cin也是屬於std命名空間中,至於使用方法,在此就不多提了。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved