2014年8月27日 星期三

C++簡介


歷史
Bjarne Stroustrup在攻取Ph.D 時就有一個構想,如何研究出一套方便又好用的程式語言。1979他參考了Simula的功能後,開始修改c語言,而在AT&T Bell Labs製作出Simula-like 的加強版C語言,稱做"C with Classes"的程式語言,這就是C++的前身,他將以下的功能(features)加入C語言的編譯器:classderived classstrong typinginliningdefault argument
1983才將其命名為 C++ (++ C語言的increment operator),新增的features 包含virtual functionsfunction name operator overloadingreferencesconstantsype-safe free-store memory allocation (new/delete)improved type checkingBCPL style single-line comments with two forward slashes (//),以及C++ compiler for C++(Cfront)
1985,第一個C++ Programming Language 版本被發行被released,而第一版商業化的C++在同年10月被released
C++ 2.01991發行,新的features包含multiple inheritanceabstract classesstatic member functionsconst member functionsprotected members. 1990C++ 的參考手冊被發行。後續更陸續新增了一些feature,包含 templatesexceptionsnamespacesnew casts boolean type
2011C++11 被發行,而且新增了更多的 featuresstandard library



認識 C++ 語言

甚麼是C++
C++ (宣告為cee plus plus) 是個通用的程式設計語言,它包含object-orientedgeneric programming features,也提供low level memory存儲操作的能力。.
他主要被設計做 systems programming (embedded systemsoperating system kernels),或在設計上有performanceefficiency flexibility的需求,C++ 也被發現在其他的運用上很有用,包含desktop applicationsservers (e-commerceweb searchSQL)performance critical的應用程式 (telephone switchesspace probes)entertainment software(例如video games)
他是一個編譯語言,可以運作在多種platforms。各種組織都有支援,包含FSFLLVMMicrosoftIntel
C++International Organization for Standardization (ISO)訂的standardC++11September 2011ISO發行(ISO/IEC 14882:2011)C++ 程式語言最早被標準化於1998 (ISO/IEC 14882:1998), 標準在C++03被作修正( ISO/IEC 14882:2003)。而現在的標準C++11,擁有新的features和擴充了standard library

使用C++的好處
程式碼精簡,產生的程式執行效率佳。
具有很高的可攜性。
完全支援模組化的程式設計
彈性大而擴充性強

誰需要使用C++
程式設計師

甚麼時候使用C++
需要程序化程式設計 (procedural programming) 、物件導向程式設計 (object-oriented programming) 的程式設計。

如何使用C++
使用 C++ 語言寫程式,最簡單的方式就是開啟文字編輯器 (text editor) ,然後將原始程式碼逐字元一個一個打進文字編輯器中,然後依純文字檔案的編碼儲存檔案, C++ 程式的原始碼檔案採用 .cpp 的副檔名。
Note
由於 C++ 編譯器的版本眾多,各種編譯器支援不同的副檔名,因此除了 .cpp 之外,尚有 .cxx .xp .c 等,我們採用 GCC 編譯範例程式,副檔名使用常見的 .cpp

如何寫程式
C++ 程式的產生過程:
C++原始程式(SOURCE.C)  C++編譯器(COMPILER) 變成目的檔(SOURCE.OBJ機器碼,如001110010100) 經由連結器(LINKER) →可執行檔(SOURCE.EXE)
◆高階語言運作步驟說明
(1)Source file(原始程式  )可以使用程式開發工具或文字編輯器來編寫source code,一般都存成xxx.c
Note
副檔名可用 .cc .cxx .cpp .cp .C

(2)Compiler(編譯器:一支程式,將source code翻譯成機器碼(machine code;機器看的懂的程式碼),會產生xxx.obj檔案,如Microsoft Visual C++ TurboC Borland C Build
Note
source file如果在語法有syntax error(語法錯誤)的話,他會要求你重新修改source code

(3)Object file(目的檔)compilersource code compile 之後翻譯成機器碼,一般都存成xxx. obj

(4)Linker(連結器):一支程式,將complie過的xxx.obj檔和其他的目地檔 (object file)做連結,進而產生可執行檔(executable file)

(5)Executable file(執行檔):可以真正執行的程式檔案,當執行時,它會被load(載入)到電腦的memory裡,然後執行。

工具
C++ 程式開發工具,有Visual C++Borland C++ Builder / C++ BuilderXGCCDev C++

程式架構
前置處理器指示詞→主函式(main{})陳述 (運算式+";")
Note
運算式 (expression) 由運算元 (operand) 與運算子 (operator) 所組成。

前置語言
前置處理器指示詞 (例如 #define #ifdef) 通常用來使來源程式在不同的執行環境中易於變更和易於編譯。
原始程式檔中的指示詞會指示前置處理器執行特定動作。
#include C++ 的前置處理器 (preprocessor) 之一,用來引入標頭檔 (header file) 所宣告 (declaration) 的內容。如#include <iostream>( C++ 的標準程式庫 (standard library) 引入輸入或輸出 (I/O) 的功能)
Note
角括號 < > 圍起來的是標準程式庫中的 iostream
C++ 的輸入或輸出的功能都被放在標準程式庫之中。

前置處理器會辨識下列指示詞:

沒有留言:

張貼留言