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

全面講析C++語言

編輯:C++入門知識

C++語言對C語言進行了改革性的改進,分為兩個方面,一方面是面向對象,另一個方面就是模板技術,在下文中將對C++語言的種種特性進行全面的仔細研究,歡迎大家一起學習交流。

但是相信在將來也一定會加入這一功能),模板是C++中比較復雜的部分,但是作為一個真正的C++程序員,這部分很重要。尤其是對C++標准程序庫的掌握尤為重要。剛開始的時候千萬不要直撲VC中的各種向導和設計器。

因為依賴開發環境生成的很多代碼會把我們搞糊塗,也不利於我們學習C++語言本身。我的建議就是生成一個空的控制台工程,然後自己向裡面添加文件。如下就是一個簡單的控制台程序:

  1. //robindy/list.cpp  
  2.  
  3. #include <iostream> 
  4. #include <list> 
  5.  
  6. using namespace std;  
  7.  
  8. int main()  
  9. {  
  10. list<char> coll;  
  11.  
  12. for(char c = \'a\'; c <= \'z\'; ++c)  
  13. {  
  14. coll.push_back(c);  
  15. }  
  16.  
  17. list::const_iterator pos;  
  18. for(pos = coll.begin(); pos != coll.end(); ++pos)  
  19. {  
  20. cout << *pos << \' \';  
  21. }  
  22. cout << endl;  
  23.  
  24. return 0;  

對using namespace std;的解釋:所謂namespace,是指標識符的各種可見范圍。C++標准程序庫中的所有標識符都被定義於一個名為std的namespace中。

由於namespace的概念,使用C++標准程序庫的任何標識符時,可以有三種選擇:1、直接指定標識符。例如std::ostream而不是ostream.完整語句如下:std::cout << std::hex << 3.4 << std::endl;2、使用using關鍵字。

using std::cout;using std::endl;以上程序可以寫成cout << std::hex << 3.4 << endl;3、最方便的就是使用using namespace std;這樣命名空間std內定義的所有標識符都有效曝光)。就好像它們被聲明為全局變量一樣。那麼以上語句可以如下寫:cout << hex << 3.4 << endl;

這段程序用到了標准模板庫,在屏幕上打印字符a~z,其中main函數的標記式只有兩種是被C++標准委員會接受的,只有以下兩種寫法是符合C++標准的,是可移植的。即:

  1. int main()  
  2. {  
  3. }  
  4. 和  
  5. int main(int argc, char* argv[])  
  6. {  

C++在main)的末尾定義了一個隱式的return 0; 但是在VC中必須顯式的寫出return語句。在BCB中可以不寫return而編譯通過。這段程序中用到了STL中的容器:鏈表。先是向鏈表中插入26個字母,然後從遍歷鏈表,輸出字符。我不建議初學者一開始就從模板庫入手。

但是我建議應該逐漸地有意識地學習模板庫。如我們應該熟悉cout和cin的用法位於iostream),而減少使用老式的C函數庫中printf和sc anf等。從控制台入手的好處就是避免我們理解VC中向導等工具生成的其他代碼。

  • C++語言入門簡介
  • 闡述C++編譯器變量進行優化說明
  • 對於C++數據類型說明
  • 豐富多彩的C/C++程序設計
  • 玩轉C++ 托管技術簡介

整個程序的流程很清楚。新手學習VC的一大難點就是搞不清楚整個程序的流程從那條語句開始執行,然後從那條語句退出。MFC做了太多封裝,掩蓋了事實的真相。。。。

通過控制台我們可以很快地學習C++語言中的很多新特性。如類的封裝、繼承和多態等。通過這個時期的學習,要能夠掌握三個東西: C++關鍵字、語法重點是和面向對象有關的,以及模板)、C++標准程序庫知道怎麼使用即可,要徹底掌握需要很多時間和精力)。

至於與界面有關的東東MFC中很大一部分是與界面相關的類,所以我認為MFC很臃腫而無聊!回頭看過以前用MFC寫的程序,有一種“垃圾”的感覺。)自己做個測試:寫一個控制台程序,在其中體現出類的繼承,函數重載,動態多態通過虛函數實現),數據封裝,C++標准庫的運用。

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