55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
sizeof для класса21.08.2013, 08:49. Показов 4913. Ответов 7
Метки нет (Все метки)
Создаем класс в котором только одна переменная типа int
--------------------------------------------------------------------- Теперь в класс добавим конструктор, деструктор и несколько функций
Ведь функции тоже занимают место в памяти
0
|
21.08.2013, 08:49 | |
Ответы с готовыми решениями:
7
Правильно ли определять размер объекта класса операцией sizeof? Sizeof(.) или constexpr size_t tmp = sizeof(.) Fwrite (buffer , sizeof(char), sizeof(buffer), pFile) sizeof для пустой структуры |
Неэпический
|
|
21.08.2013, 08:53 | 2 |
Потому что ничего не поменялось. Как требовалось для объекта 4 байта, так и осталось.
То есть по Вашему они должны увеличивать размер объектов? С чего вдруг, это же просто функции?
0
|
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
|
|
21.08.2013, 09:00 [ТС] | 3 |
думаю, должны.
А где записаны в памяти? Все эти функции находятся внутри класса. Еще в этих функциях есть локальные переменные. Они уж точно где-то записаны и занимаю место Непонятно
0
|
26 / 26 / 0
Регистрация: 10.03.2010
Сообщений: 241
|
|
21.08.2013, 09:21 | 4 |
На сколько я помню, таблица адресов функций-членов находиться в другом месте, и при создании объекта под них кажды раз не распределяеться память и это логично.
Добавлено через 3 минуты А sizeof возвращает размер области данных
1
|
55 / 55 / 6
Регистрация: 07.07.2013
Сообщений: 345
|
|
21.08.2013, 09:28 [ТС] | 5 |
eXtream, спасибо
0
|
4744 / 2556 / 888
Регистрация: 29.11.2010
Сообщений: 5,525
|
||||||
21.08.2013, 10:21 | 6 | |||||
А еще же таблица виртуальных функций есть.
0
|
21.08.2013, 11:37 | 7 |
Т.е. по твоему логично, что для каждого объекта существует своя копия функции? Т.е. если мы имеем массив из 1000 объектов, то в исполняемом файле будет существовать 1000 копий одной и той же функции? Конечно же нет, функции вынесены в отдельное место и по сути являются обычными функциями (как любая другая), отличие их в том, что область видимости у них ограничена классом (т.е. могут вызываться либо из другой функции класса, либо для объекта класса).
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
21.08.2013, 12:25 | 8 |
1
|
21.08.2013, 12:25 | |
Помогаю со студенческими работами здесь
8
Для чего нужен Sizeof Является ли оператор sizeof синтаксическим сахаром над System.Runtime.InteropServices.Marshal.SizeOf? Что обозначает строка вида sizeof(data)/sizeof(data[0])? Marshal.SizeOf и sizeof Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |