C++ Under the Hood 底层揭密培训

课程介绍
C++ Under the Hood 底层揭密培训令高階C++ programmers更進一步理解C++ 幕後運作機制

课程特色:
特別強調 "內核揭密  源碼剖析",徹底理解 C++ 之啟動與結束之種種背景運作、CRT (C Runtime Library) 扮演的重要角色、及 C++ virtual functions / polymorphism / dynamic binding 的幕後機制。本課程談的是基礎內核知識,對於高階技術養成及通貫極有幫助。全部內容建立在源碼級別 (source code level)。
课程对象

C++ 中高级学员

课程时长1天

传统的面对面授课方式。

 

课程大纲:

* Startup Code 是什麼?它們出現在哪裡?可觸摸嗎?可修改嗎?可利用嗎?
* C Runtime (CRT) 在 C++ 程序中扮演的重要角色
* 徹底理解 C++ programs 生前死後的每一個細節
* C++ programs 運行前 (before main)和退出後 (after exit) 的所有行為:
   mainCRTStartup,  heapinit,  ioinit,  environment variables, argc & argv & envp,
   cinit, core of C Initialization, core of C++ Initialization, main(),  secrets of exit.
* 如何讓程序在 main() 之前執行
* 為什麼能夠讓程序在 main() 之前執行
* 如何讓程序在 exit() 之後執行
* 為什麼能夠讓程序在 exit() 之後執行
* main() 執行前的 CRT 小內存塊 (small memory blocks) 分配和釋放 (實例觀測)
* global / static objects 的 ctors & dtors 的特殊性
* CRT malloc / free 行為綜覽和實例觀察
  cookies, debug headers, 16 headers, 64 groups (free lists), 32 regions, memory management, blocks merging (de-fragment).
* Debug Heap 的形成和實例觀察
* CRT Reporting Functions
* virtual functions 能夠神奇實現 OCP (Open-Closed Principle) 的原因
* virtual functions 背後如何運作 (關於 vptrs 和 vtbls)
* 何謂動態綁定 (dynamic binding)?編譯形式為何?
* virtual functions 的兩大應用形式:(1) Polymorphism (2) Template Method
..