2013-06-28 21 views

cevap

8

EDIT'e

struct 
{ 
    char x; 
private: 
    short y; 
public: 
    char z; 
}; 

değiştirmeye izin geçerli: derleyici yapmak için izin verilir, ben aslen alıntı yanlış hatırlıyor o 9.2/14 başına:

Statik olmayan veri üyeleri Aynı erişim denetimi (Madde 11) olan bir (sendikasız) sınıfın, daha sonraki üyelerin bir sınıf nesnesi içinde daha yüksek adresleri olması için ayrılır. Farklı erişim kontrolüne sahip statik olmayan veri elemanlarının tahsisi sırası belirtilmemiş (11). Uygulama hizalama gereksinimleri, birbiri ardına birbirinden ayrılmaması için iki bitişik üyeye neden olabilir; böylece Ne yapamaz sipariş aynı erişim belirticisiyle niteliklerini yöneten sanal fonksiyonlar (10.3) ve sanal temel sınıflar (10,1)

için alanı için gereklerini olduğunu olabilir.

Erişim belirticileri arasında bile öznitelikleri yeniden düzenleme özgürlüğünü alan herhangi bir uygulamayı bilmiyordum dedi.

+0

Derleyici, her erişim belirtimindeki sırayı değiştiremez. Her erişim belirtimi sırasının sırası belirtilmemiş. Derleyici, O.P.'nin gösterdiği şeyi yapmasına izin verilir. – John

+0

+1: Bunun neden standart olduğunu merak ettim. –