文章總列表

C++ study note vol.1

開宗明義: 我跟 C++ 不熟


----


以前我看過一個問題: 是不是要先學 C, 再學C++
這個問題我沒辦法回答, 因為我已經寫 C寫了好多年啦 XD

隨著我寫的 code 逐漸增加, 慢慢的, 我也想多掌握一些其他技術
其中物件導向的技術, 確實是很多問題不錯的解
因此, 我又把 C++ Primer 打開來看


----


我以前覺得 C++很笨重
C++ 支援很多的語法, 很多 fancy的作法

但是書上沒有告訴你

1. C++ 一堆 fancy 的東西, 一些特別的語法, 是為了什麼而存在?
2. 為什麼要有這些東西, 要在那個場合, 要怎麼用才好?
3. 有printf(), 我非得用 cout 不可嗎 ?

市面上有一大堆 C/C++ 的書, 但是很少有書好好告訴你

What's pratical C++ ?


----


我再舉個例子
Operator overloading 是 C++ 支援的 fancy 功能之一
可以把 +, -, *, /, [], 等等語法重新定義

但是我非得要用 operator overloading?
我呼叫函數, 一樣能完成這個功能, 那我為什麼一定要這樣做 ?

現實的狀況是, 除非有必要
不然用 operator overloading, 通常只會降低程式的可讀性
所以這個東西... 似乎也沒有很必要去學...


----


再來, 是所有公司interview的 C++ 考試, 必考的 virtual function
大部分的書會告訴你, 這個語法是怎麼回事, 怎麼用

但是, 其實 virtual function, 也可以用 C 去模擬出來...
更不用說, 其實 C 也可以拿來寫物件導向的程式

不管 C++語法再怎麼神妙, 他最後都會變成 instructions
從組合語言的角度出發想問題, 才能看到事情的全貌

留言

這個網誌中的熱門文章

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

幼犬書桌椅選擇心得 升降桌 兒童桌椅

CANON G3000 廢墨瓶改裝