Вопрос Щитпост

Статус
В этой теме нельзя размещать новые ответы.
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
айкью тест:
class object{
private:
    object* ptr = this;
public:
    int shit{ 5 };
    object* get_object_ptr(){
        return ptr;
    }
};

int main() {
    object $object;
    std::cout << sizeof($object);
    system("pause");
}
вопрос - какой будет принт и почему
за неправильный ответ комментатор получит клоуна
за правильный ответ комментатор получит попокорн
 
пупс, поцелуй
Участник
Статус
Онлайн
Регистрация
28 Май 2019
Сообщения
1,053
Реакции[?]
322
Поинты[?]
14K
за неправильный ответ комментатор получит клоуна
за правильный ответ комментатор получит попокорн
Есть один стул...


Вывод данной программы будет зависеть от размера объекта "object" в байтах. Конкретное значение размера зависит от реализации компилятора и архитектуры системы.
Могу и ошибаться..
 
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Есть один стул...


Вывод данной программы будет зависеть от размера объекта "object" в байтах. Конкретное значение размера зависит от реализации компилятора и архитектуры системы.
х64, компилятор вроде не должен никак влиять
 
Главный модератор
Главный Модератор
Статус
Оффлайн
Регистрация
13 Фев 2018
Сообщения
1,094
Реакции[?]
801
Поинты[?]
146K
На х64 - 12 байт, т.к. указатель равен 8 байтам, интежер - 4 байтам
На х86 - 8 байт, т.к. указатель будет равен уже 4 байтам
 
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
На х64 - 12 байт, т.к. указатель равен 8 байтам, интежер - 4 байтам
На х86 - 8 байт, т.к. указатель будет равен уже 4 байтам
айкью тест не пройден, еслиб я мог, поставил бы клоуна, x64 весит не 12. второй ответ правильный
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,026
Реакции[?]
182
Поинты[?]
71K
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
объебанная шалава
Пользователь
Статус
Оффлайн
Регистрация
31 Янв 2020
Сообщения
288
Реакции[?]
89
Поинты[?]
7K
у меня айкью 40 получилось а чьто
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Если брать самый общий случай, то на платформе x64 наш прелестный int будет иметь размер в 8 байт, так же как и указатель. Функции ( помимо виртуальных ) никак не влияют на размер класса, так что размеры: x64 -> 16, x86 -> 8 байтов соответственно.
 
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если брать самый общий случай, то на платформе x64 наш прелестный int будет иметь размер в 8 байт, так же как и указатель. Функции ( помимо виртуальных ) никак не влияют на размер класса, так что размеры: x64 -> 16, x86 -> 8 байтов соответственно.
инт (не указатель) будет весить 8 по причине?)) и не будет он 8. он будет 4. но ответ правильный
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Сен 2021
Сообщения
425
Реакции[?]
121
Поинты[?]
162K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
айкью тест:
class object{
private:
    object* ptr = this;
public:
    int shit{ 5 };
    object* get_object_ptr(){
        return ptr;
    }
};

int main() {
    object $object;
    std::cout << sizeof($object);
    system("pause");
}
вопрос - какой будет принт и почему
за неправильный ответ комментатор получит клоуна
за правильный ответ комментатор получит попокорн
принт будет sizeof($object)
 
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ЧВК EB_LAN
Забаненный
Статус
Оффлайн
Регистрация
12 Сен 2021
Сообщения
425
Реакции[?]
121
Поинты[?]
162K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
17 Май 2023
Сообщения
11
Реакции[?]
10
Поинты[?]
10K
Ну по идее, раз на x86 размер 8 байт (4 байта + 4 байта), то на
x64 должен быть 12 (4 байта + 8 байт)

Однако в случае сборки под x64 из-за выравнивания размер класса может быть
больше, чем сумма размеров его мемберов, потому что размер класса округляется до
ближайшего кратного 8, отсюда и получается 16 байт.
 
Забаненный
Статус
Оффлайн
Регистрация
6 Авг 2022
Сообщения
128
Реакции[?]
25
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну по идее, раз на x86 размер 8 байт (4 байта + 4 байта), то на
x64 должен быть 12 (4 байта + 8 байт)

Однако в случае сборки под x64 из-за выравнивания размер класса может быть
больше, чем сумма размеров его мемберов, потому что размер класса округляется до
ближайшего кратного 8, отсюда и получается 16 байт.
ответ правильный, объяснение не до конца понятное, не знаешь, где можно про "выравнивание классов" почитать?
 
Начинающий
Статус
Оффлайн
Регистрация
17 Май 2023
Сообщения
11
Реакции[?]
10
Поинты[?]
10K
Забаненный
Статус
Оффлайн
Регистрация
17 Май 2023
Сообщения
17
Реакции[?]
3
Поинты[?]
4K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу