170 похожих чатов

#Include <iostream> class x{ private: int value = 10; }

obj;

int main(){
std::cout << *((int*)&obj) << std::endl;

return EXIT_SUCCESS;
}

Это уб?

13 ответов

21 просмотр

Это пиздец

если хочешь получить доступ к приватным полям/методам есть более человеческие способы, без этого пиздеца

1. зачем? 2. A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. There may be unnamed padding within a structure object, but not at its beginning. Стандарт C99, не знаю применимо ли к C++

Dian-Blasphemous¿ Автор вопроса
Igor Nazarov
если хочешь получить доступ к приватным полям/мето...

Не хочу, это код по сути вырезан из контекста. Мне просто было интересно, является ли такой каст уб'ом

Dian Blasphemous¿
Понял, спасибо

но делать так всё равно не стоит, за исключением очень специфичных случаев

Cyberly 🦄
в C не является, в плюсах вероятно тоже

В C++ структуры состоящие только из примитивов являются Plain Old Data, и к ним примерно применяются правила Си

Это трэш.

Dian Blasphemous¿
Не хочу, это код по сути вырезан из контекста. Мне...

его как минимум нужно покрыть тестами и использовать либо паблик поля, либо структуру. А делать так нет смысла, приватные поля не просто так приватные

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта