1. 程式人生 > 實用技巧 >零基礎到底應該如何入門學習C/C++語言,他是這麼做的。

零基礎到底應該如何入門學習C/C++語言,他是這麼做的。

如果你將來打算從事C++方向的開發,也建議沒有程式設計基礎的同學先從C語言開始學習,掌握C語言及面向過程的程式設計思想,接著再學習具有一脈相承的C++語言,不僅可以科學的學習兩門計算機界中最主流的開發語言,更可以體會到軟體開發思想發展的變化,起到到觸類旁通的效果

如何自主學習C++?

首先是一本好的C++書籍(Accelerated C++, C++ Primer),然後以及儘量多的完成書籍的習題,可以幫助完成C++語法的學習。

雖然部分書籍涵蓋了標準庫,但是不夠完善,這個時候你可以選擇線上查閱C++標準庫這種泛型的學習方式,也可以選擇閱讀《C++標準庫》的方式進行學習。通過這樣的步驟,你應該可以完成C++的初步學習了。

然後,由於C++是一門系統級語言,需要學習作業系統的時候,才會明白棧與堆、記憶體管理等更深層次的含義。但是,在明白這些概念之前不會妨礙你利用C++做一些事情,比如寫一個簡單的XML Parser。這個時候,你應該會發現很多問題,如效率,程式碼規範等,這個時候,你可以研究Effective C++,Google C++ Code Standard等,只有自己犯了錯,回過頭反省才會更加深刻。

隨後,你可以更加深刻的去思考C++,你需要閱讀《The Design and Evolution of C++》。這本書的閱讀,會教會你很多,是對你影響最大的C++書籍。如果你對C++編譯器的一些細節有興趣,深入C++物件模型可以推薦。如果你對STL的一些實現有興趣,可以去翻翻STL原始碼(很多人推薦STL原始碼剖析,但是我沒有閱讀過,我沒有辦法發表是否應該推薦的觀點,列出來供你自行判斷是否應該閱讀)。

到這一步驟,我想你應該可以稱為C++ Programmer了,剩下的就是實踐中發現問題,然後補足自己。此外,由於C++博大精深,應用的範圍多如牛毛,特定方向所需要的知識未列舉。比如你要研究Android的NDK什麼的,那就是屬於你後面的事情了。

學習C++前預設大家已經具備C語言的基礎,如果還沒有學過C語言,建議大家先學習C語言

C++語言是在C語言基礎之上為支援面向物件而設計的這麼一套程式語言,而面向物件在C++中的體現就是類的機制,所以C++也稱作是“帶類的C語言的”。那麼什麼是類?

我們不妨先從C語言的結構體說起,相信大家還有印象。

比如C語言程式碼

struct stu
{
    
int num; char sex; int math_score; int en_score; int c_score; }; int main() { struct stu A; return 0; }

上面的C程式碼定義了一個struct stu的結構體型別,裡面有五個成員變數,然後在主函式中又定義了這種結構體型別的一個變數A,這是我們熟悉的C語言程式碼,其實呢,C++中的類也類似,只不過比C的結構體高階了一些,不叫結構體了,叫類,而且呢,裡面除了可以包含很多個基本變數型別以外,還可以包含很多函式,對於第一節課的初步瞭解,我們大體瞭解如此就可以了。例如對應的C++程式碼則為:

class stu
{
    int num;
    char sex;
    int math_score;
    int en_score;
    int c_score;
  
    int total_score()
    {
      return math_score+en_score+c_score;
    };
  
};
int main()
{
   class stu A;
    return 0;
}

大家仔細對比看看,C語言裡用struct定義,C++用class定義,其次C++中的class裡多了一個函式,這就是C++中類不一樣的。

另外在叫法上也不同,C++類中的成員變數叫做屬性,類裡的函式叫做方法。即類擁有屬性與方法兩部分。

當然,除此以外,還有很多不一樣的地方,我們今後慢慢展開介紹。

要是你是屬於沒有C語言基礎的小夥伴,或是對程式設計C語言感興趣的小夥伴可以加裙,免費獲取這些資源呦,定期釋出相關學習筆記和原始碼~