2013-06-28 6 views

ответ

8

EDIT: Я misremembered цитата первоначально, компилятор имеет право сделать это за 9.2/14:

Нестатические элементов данных (неединичный) класс с тем же доступом элемент управления (раздел 11) выделяются так, что более поздние члены имеют более высокие адреса в объекте класса. Порядок распределения нестатических элементов данных с различным контролем доступа не указан (11). Требования к выравниванию реализации могут приводить к тому, что два соседних элемента не должны выделяться сразу друг за другом; так может требования к пространству для управления виртуальными функций (10.3) и виртуальных базовых классов (10.1)

Что он не может сделать это перезаказ атрибутами с тем же спецификатором доступа.

Это говорит, что я не знаю никакой реализации, позволяющей переупорядочивать атрибуты даже по спецификаторам доступа.

+0

Компилятор не имеет права изменять порядок в каждой спецификации доступа. Порядок каждой спецификации спецификации доступа не указан. Компилятору разрешено делать то, что демонстрирует O.P. – John

+0

+1: Я всегда задавался вопросом, почему это в Стандарте. –