Определяет ли стандарт C++ компоновку компиляции класса и структуры? Как они компилируются по-разному, особенно если они пусты?Как скомпилирован пустой класс и пустая структура?
7
A
ответ
13
Он делает это в некотором смысле, он говорит, что он должен выделять пространство для него, если не определенные случаи, когда он используется как базовый класс (известный как Оптимизация пустого базового класса). Это гарантирует, что разные объекты имеют разные адреса.
Они скомпилированы таким же образом, что struct
и class
- это то же самое, за исключением спецификатора доступа по умолчанию. В C++ 11 введено понятие стандартных макетов классов/structs и гарантирует, что макет памяти для пустых классов будет одинаковым.
Смежные вопросы
- 1. Пустая структура или анонимная структура как тег
- 2. Пустая структура в C vs пустая структура в C++
- 3. Пустая модель, пустой стол
- 4. SizeOf выровнены пустая структура
- 5. Класс не скомпилирован автоматически
- 6. Обработка пустой/пустая строка
- 7. Закрытие канала против отправки, например. пустая структура?
- 8. Проверьте, существует ли пустая структура: Javascript
- 9. Класс контракта и структура SysOperation
- 10. Почему пустая структура в C# потребляет память
- 11. Пустая структура для использования с reflect.TypeOf
- 12. Пустой символ невозможен, но возможна пустая строка
- 13. Специализируется шаблонный класс как структура
- 14. класс Ранжирование C++, как структура
- 15. Split пустая строка должна возвращать пустой массив
- 16. Groovy и IntelliJ - код скомпилирован
- 17. JAXB: Пустая строка не производит пустой элемент
- 18. Java проверить пустой ArrayList как структура класса
- 19. PHP-страница пустая, а исходный код пустой
- 20. DataGridView и пустая таблица
- 21. Класс Laravel не скомпилирован при первом запуске
- 22. Структура Delphi Обобщения Класс
- 23. Структура и класс шаблона в C++
- 24. Vector2: Класс или структура?
- 25. Конструктор, класс, объединение, структура
- 26. новый для as3 .. класс структура и спрайт
- 27. Класс Python, структура данных и надлежащая архитектура
- 28. C++ Класс/Структура размер
- 29. Инициализация пустой класс ES6
- 30. Класс суперкласса и структура подкласса Ruby
Absolutelu «нет» по обоим соображениям по первому вопросу. У класса есть неявный «этот» указатель в ответ на второй вопрос. – paulsm4
@ paulsm4: Ваш ответ на второй вопрос неверен. в этом отношении не существует никакой проблемы между «классом» и «структурой». Разумеется, 'struct' может иметь' virtual' членов. –
Классы и структуры - это то же самое, единственное различие заключается в спецификации доступа по умолчанию (для членов и баз). – GManNickG