[英]Why does the C++ standard specifically grant leeway regarding memory layout of class data members with different access specifiers?
C ++ 11標准要求對一個類的非靜態數據成員在內存中進行排序,但隨后專門為具有不同訪問說明符的成員免除費用。
為什么呢
第9.2.13節
分配具有相同訪問控制(條款11)的(非聯盟)類的非靜態數據成員,以便以后的成員在類對象中具有更高的地址。 未指定具有不同訪問控制的非靜態數據成員的分配順序(第11條)。 實施一致性要求可能會導致兩個相鄰成員不能彼此立即分配; 管理虛擬功能(10.3)和虛擬基類(10.1)的空間要求也可能如此。
標准的這一部分以前已經在stackoverflow上提到過,但是我認為還沒有得到解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.