当前位置:艾威培训主页 > 软件开发 > 侯捷C++定制培训 > C++ Under the Hood 底层揭密培训 >
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
..
* 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
..