при создании объекта класса от приватных переменных и публичных? К примеру, если в двух классах две переменные в private, а во втором классе 10 переменных, то при создании объекта класса, память будет занимать больше тот класс, у которого больше переменных? Или как это работает? Где почитать про такое?
Вызовете sizeof() и он Вам скажет. От порядка полей в классе зависит.
От мемберов и зависит, да. От того сколько их и каких они типов Конкретный размер штука платформозависимая, плюс размер класса это не просто сумма размеров мемберов, он может быть чуть больше из-за padding'a у полей. Можно посмотреть на пример на цппреф: https://en.cppreference.com/w/cpp/language/sizeof
И ещё если в классе есть виртуальные функции размер тоже будет чуть больше
не зависит
Спасибо за ответ
Зависит причем только от полей, не от методов. Когда то сам смотрел ассемблерный код, чтобы убедиться в этом. Методы (функции) описываются в секции .text. Это тебе надо почитать про память и сегменты процессов. Но и тут нужно учитывать что может произойти выравнивание адресов полей и оптимизация компилятора. Так что да, sizeof(), как выше писали, наверно самый надежный вариант узнать размер объекта.
Не надо читать про память и сегменты, это лишь детали реализаций, которые могут быть совершенно другими
Обсуждают сегодня