如何快速學習C?
C ++可以分為幾個部分。
首先,您具有基本的面向對象功能。在C ++中,此功能非常強大。我建議您了解有關類中的多重繼承,多態,重寫運算符,構造函數和析構函數,工廠,范圍控制和靜態變量的知識。
其次,有模板。在C ++中,您有很多數據類型,其中所有操作均已定義,但某些關鍵屬性未定義。它是抽象數據類型的一種形式。創建模板實例時,根據模板填寫一些或全部缺少的信息。模板使您無需編寫代碼即可擁有一些相當復雜的數據類型(包括混合數據類型)。由于模板的使用量很大,因此代碼往往非常健壯。
第三,與其他程序進行交互。C ++支持套接字,POSIX線程和多個進程。有許多第三方庫可以簡化這些操作。第三方庫還為您提供RPC和CORBA,盡管這些年來使用它們已下降。您絕對應該了解被動軟件,主動軟件和被動軟件之間的區別,更多地是要了解潛在的問題和陷阱。您可能會編寫比“您應編寫響應式服務器”更為開放的解決方案,但是了解這些選項將為您提供增加有用的細微差別的空間。
第四,安全性。CERT發布了一個網頁,其中包含針對C,C ++和Java程序的所有當前推薦的所有安全標準-應避免的事情,要做的事情或類似的事情。在輸入方面,安全性極為重要。輸入應始終經過驗證,但是事情會被遺忘,或者您可以進行的驗證存在局限性。如果您在這些地方使用安全代碼,則錯誤或惡意破壞整個系統的風險會大大降低。
我將從列表中的第一個開始,并逐漸精通它。這對其他所有事情都至關重要。您不必是專家,但您必須確信潛伏著沒有大的驚喜。
對于第二,第三和第四部分,我將各學習一遍,并學習一下。如果沒有程序交互,某些模板將毫無意義,高質量的交互意味著對安全性有所了解。每一種都很好地混合在一起,一勞永逸,對您有好處。練習,不要讓新信息讓自己超載,但永遠不要讓它過時。可以長時間保持新鮮。
一旦對這四個方面都充滿信心,您可能會遇到一些反復出現的問題或某些似乎不完整的領域。同樣,這可能會順利進行。但是,如果您發現自己反復遇到相同的障礙,那么您希望查看一些第三方庫或擴展。
Boost可能是唯一如此標準以至于幾乎是標準的一部分。這提供了許多非常有用的幫助程序功能,這些功能使編程更加容易。
當涉及到對C ++標準的實際擴展時,我只能想到兩種-面向方面的C ++和功能性C ++。它們添加了全新的編程形式,對于需要比C ++范例支持更多空間的人們來說,這是非常好的選擇。
數據庫是另一回事。您可能需要熟悉流行的關系數據庫的大量C ++連接器,但也有面向對象的數據庫和對象關系的數據庫。他們是不同的東西。它們使您能夠以各種方式停留在OO范式中,這非常好,因為它可以使您的編程保持一致。缺點是它們是一種較不成熟的技術,而且相當稀有。但是,如果您編寫的程序需要內部存儲和檢索數據,而不要求任何其他程序可以進入數據庫,那么您將瘋狂地運行像PostgreSQL或MySQL這樣繁重的工作,并且需要進行所有轉換往返對象。把事情簡單化。