1 C++核心方法總論
1.1 核心思想
通過實際項目來學習編程,更高效掌握編程規則,以及明白各種語法規則的實際應用。
實驗思想:任何C++的參考資料都不可能覆蓋你遇到的所有問題,這個時候,最好的辦法就是,編輯代碼試一試,理論分析這些有用,不過最終還是要歸結到親自實驗驗證!
1.2 學習C++的方法論
1.2.1 核心方法
- 在實戰中學習
- 在錯誤中學習
- 及時回顧復習
1.2.2 具體實操方法
- 掌握編程思維
- 不刻意記憶語法規則,修煉實戰技能
- 在循序漸進的實戰項目中學習
- 不斷試錯,在錯誤中學習成長
1.2.3 解決錯誤的辦法
- 自己研究30分鐘
- 查閱書籍資料,百度谷歌等
- 重復1,2,如果實在解決不了可以問高手牛人
- 將問題解決方案記錄下來(CSDN博客)
- 及時回顧復習,在以后遇到類似問題時候,強化刺激,進一步加深理解
- 補充說明:對于初學者來說,建議“不懂就問”,自己研究很可能是在浪費時間
1.2.4 C++語法學習法則
1.2.4.1 核心原則
記憶語法規則不是最關鍵的,能夠在實戰中靈活運用才是最重要的!不要刻意記憶各種語法規則,能夠掌握常用的即可。
1.2.4.1 最原始本質的語法規則
- 各語法單位之間,由至少一個分隔符隔開,分隔符有:空格、縮進符(Tab)和換行符(Enter)。
舉例說明:
/*常見風格一*/
int main(void)
{return 0;
}/*常見風格二*/
int
main(void)
{return 0;
}
- 所有字符必須是英文狀態下的(字符串內容除外)
- 每一句完整的指令最后要加上“;”(英文的分號)【注意,在C/C++中,分號是語句的組成部分,并不是分隔符】
- #include、#define 等預處理命令,必須一行一條
1.2.5 核心學習回路
1.3 C++開發環境
1.3.1 概念
C++開發環境,即C/C++程序員的工具包,能夠讓程序員實現如下操作:
- 編輯代碼
- 編譯、鏈接
- 調試
- 運行程序
1.3.2 開發工具
即構建開發環境所需要的工具,開發環境至少包含
- 編輯器:程序員編輯代碼的工具
- 編譯器:將程序員的代碼轉換為計算機可識別的代碼的工具
- 調試器:程序員用來解決bug的工具
1.3.3 開發工具的種類
- 分開:編輯器,編譯器,調試器是三個不同的工具
- 集成:IDE(集成開發環境),三個工具整合為一個
1.4 編程的本質
1.4.1 編程的本質
- 對數據的控制,失控是會造成災難的,失控就是bug,bug就必須要修復
- 對數據的處理,函數是處理的方法
- 編程,就是用程序員的思維,控制計算機來完成對數據的處理。因此編程思維修煉至關重要
1.4.2 C/C++的特點
C/C++與其他語言的最大的區別,在于【極度掌控】,能夠直接控制內存的使用
1.4.3 程序失控造成的災難
計算機時鐘 BUG 導致美軍海灣戰爭中,唯一過百的傷亡(死 28 人,傷 100 余人)
BUG 事件:1991 年 2 月,美軍的愛國者反導彈系統失效,未能攔截伊拉克的飛毛腿導彈,宰
赫蘭基地被炸毀,場炸死 28 個美國士兵,炸傷 100 多人,造成美軍海灣戰爭中唯一一次傷
亡超過百人的重大損失。
BUG 分析:愛國者反導彈系統,每工作 1 小時,系統時鐘延時 3ms 左右,當時已經連續工作
了 100 小時,延時達到三分之一秒!飛毛腿導彈足以擊中目標了!
1.4.4 避免失控
我們一定要關注,并且避免程序的失控,一定要提高程序標準,這是一門需要高精密水準的專業技能。
可能出現的、不易察覺的失控【編譯鏈接通過,程序運行良好,但是有潛在隱患】
- 內存泄露
- 堆棧溢出
- 小規模數據運行良好,大規模數據運行崩潰
- ……
以上都需要可以關注和避免!在以后章節的學習中要關注細節,這非常重要,否則,他們可能造成很大的災難!
1.5 代碼風格與規范
個人有自己獨特的代碼風格,但是,在與公司的代碼規范要求不沖突的前提下,才能使用自己的代碼風格,初學者建議跟隨著牛人、專業書籍中的代碼規范進行模仿學習,是的,對于初學者來說,模仿真的很重要。
【版權聲明】C++學習之路系列內容,是本人跟隨ROCK老師的課程學習,加上書籍的研究,經過思考實踐后記錄下來的內容,內容涉及到老師的課程內容,若侵權請聯系我刪除。
在此也附上我學習課程的鏈接:https://ke.qq.com/course/388295