iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

山姆大叔談 C++:從歷史談起,再給個定義—Modern C++ 解惑 系列

C++ 這個年紀跟山姆差不多的「老」程式語言,於西元二零一一年正式通過,並發佈了讓這個老語言「回春」的新標準-C++11。同年,C++ 標準委員會達成共識,未來將每「三年」通過一次新的規格,持續替這個老語言<del>續命</del>注入新活水。

雖然唸書時曾接觸 C++,但直到當兵時買了侯捷老師的《C++ Primer》譯本,才正式開始 C++ 學習之旅。三生有幸,退伍後進到台灣的小軟體公司也是以 C++ 為主力,至今十餘載,我依然熱愛程式設計。

此系列的焦點是 Modern C++,利用這個機會讓自己重新檢視這個老語言的新功能。若不小心對讀者有幫助,也算是良好副作用 😁。

參賽天數 26 天 | 共 26 篇文章 | 54 人訂閱 訂閱系列文 RSS系列文
DAY 1

DAY 0:何謂「Modern C++」?從歷史談起,再給個定義——前篇

第一篇,我想先從 C++ 這個「老」程式語言的歷史談起。了解語言的歷史是為了理解其發展脈絡,並對其未來的有所掌握。 喜歡一個東西,你會想了解她的一切。懂了程式語...

DAY 2

DAY 1:何謂「Modern C++」?從歷史談起,再給個定義——後篇

上一篇簡單介紹 C++ 前半段歷史,我沒有參與,接下來談下半段。我是在 2000 年左右認真學習 C++,當時的版本是 C++98,那個時期,C++ 已經被廣泛...

DAY 3

DAY 2:指標是功能還是臭蟲?兼談 Smart Pointer(拜託不要翻成「聰明指標」)的必要性

這一篇要談的是程式語言界,人人聞之喪膽的「指標」以及「記憶體管理」,先抓出常見的問題,然後在之後的文章說明如何利用 Modern C++ 來減輕痛苦。開始前,我...

DAY 4

DAY 3:只能死一次,不能鞭屍,談 std::unique_ptr<T>,卷一

眾所周知,C++ 的特色之一是難搞的「指標(Pointer)」。指標常被用做「記憶體管理」,也被用來實作「繼承體系」,許多 C++ 的設計手法必須透過操作指標方...

DAY 5

DAY 4:只能死一次,不能鞭屍,談 std::unique_ptr<T>,卷二

前一篇講 std::unique_ptr&lt;T&gt; 的基礎應用,這篇談稍微進階一點的用法。進入主題之前,照慣例要岔一下題。 「Garbage Colle...

DAY 6

DAY 5:Smart Pointer std::shared_ptr<T>,卷一

雖然花了兩篇介紹 std::unique_ptr&lt;T&gt;,但其實還沒把全部的好處以及可用的場景交代清楚,山姆大叔未來還有其他規劃,這篇的主角改由 st...

DAY 7

DAY 6:Smart Pointer std::shared_ptr<T>,卷二

本篇的「岔題」在開頭。撰寫鐵人賽系列文章時,我的目標不是完整介紹 Modern C++ 的每一個方面,而是把基本功能與用法,透過簡單的範例,做個粗淺的介紹。C+...

DAY 8

DAY 7:Modern C++ 要角,老語言回春的關鍵,談 auto/decltype,卷一

當岔題成了習慣,不岔就是例外。本篇的「岔題」是:螢幕水平空間的重要性。古人的螢幕,水平可用的字元數約 80 個,據說跟 IBM 有關係。有了那樣的歷史因素,80...

DAY 9

DAY 8:Modern C++ 要角,老語言回春的關鍵,談 auto/decltype,卷二

C++11 引入的 decltype 是一個容易被忽略的重要組件,在撰寫 Template 時,decltype 能起許多作用。這一篇說明 decltype 的...

DAY 10

DAY 9:Modern C++ 要角,再談 auto

上上一篇稍微聊了 auto 的「基本面」,僅說明其對程式碼語法的影響,這一篇要講 auto 的「語義」。首先,再複習一次 auto 的定義: For vari...

大山姆的機機車車的收藏
大山姆的機機車車的追蹤
大山姆的機機車車的Like
大山姆的機機車車的紀錄