Есть некий класс, сlass A_class;
у него есть свойство int b;
и метод void action();
который содержит некий код.
Так вот, что будет если в нескольких местах кода создать объекты этого класса в количестве двух и более например A_class C; A_class D;
будут созданы полные копии объектов?
Исполняемый код метода action()
тоже будет хранится дважды? А если память выделять динамически через new
? А как будет хранится явный конструктор в таких случаях? Будет ли компилятор пытаться оптимизировать код и удалять копии методов?
Функции не хранятся в объектах. Можете в этом сами убедиться, применив оператор sizeof
к разным классам с одинаковыми полями данных и разным количеством функций. Совершенно не важно как будет создан объект: на стеке или в куче через new
. Код (тело функции) хранится в одном единственном экземпляре (про inline
пока не буду говорить).
Нестатическая функция-член (метод) отличается от обычной свободной функции только лишь тем, что неявно имеет дополнительный параметр, ссылающийся на экземпляр объекта. Т.е. на хранение кода функции это никак не влияет.
Конструктор в этом плане не является каким-то особенным и может быть рассмотрен как обычная функция.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, как умножить каждый элемент массива по очереди на каждый элемент другого массиваНапример есть массив А[5] B[5] и нужно умножить...
Из описания на msdn в Win32_Processor есть поле ProcessorTypeЯ пробую вывести это строками:
скажите почему след код не выводит измененое имя и возраст?
Проблема в том, что я пытаюсь добавить текстуру (накладываю на материал)