這是因為被static聲明的類靜態數據成員,其 實體 遠在main()函數開始之前就已經在全局數據段中誕生了(《Inside the C++ Object Model》page247)!其生命期和類對象是異步的,這是最主要的原因。靜態語意說明即使沒有類實體的存在,其靜態數據成員的實體也是存的,這個時候對象的生命期還沒有開始,如果你要到類中去初始化類靜態數據成員,讓靜態數據成員的初始化依賴於類的實體,那怎么滿足前述靜態語意呢?難道類永遠不被實例化,我們就永遠不能訪問到被初始化的靜態數據成員嗎?
這是因為被static聲明的類靜態數據成員,其 實體 遠在main()函數開始之前就已經在全局數據段中誕生了(《Inside the C++ Object Model》page247)!其生命期和類對象是異步的,這是最主要的原因。靜態語意說明即使沒有類實體的存在,其靜態數據成員的實體也是存的,這個時候對象的生命期還沒有開始,如果你要到類中去初始化類靜態數據成員,讓靜態數據成員的初始化依賴於類的實體,那怎么滿足前述靜態語意呢?難道類永遠不被實例化,我們就永遠不能訪問到被初始化的靜態數據成員嗎?
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。