Информация об изменениях

Сообщение Re[9]: Про перемещение (на примере кода) от 15.04.2025 8:28

Изменено 15.04.2025 9:23 rg45

Re[9]: Про перемещение (на примере кода)
Здравствуйте, Shmj, Вы писали:

S>Но еще есть вопрос наглядности — а это тоже важно. Чтобы получать нужную часть пакета — одной удобной строчкой с внятным названием — т.е. чтобы вся магия манипуляции с байтами — была не видна при взаимодействии.


Смотри, есть одно важное отличие С++ от С#, на которое ты до сих пор не обратил внимания. В C# все типы делятся на две группы — ссылочные типы и типы-значения. В связи с этим, способ владения объектами предопределен ещё на этапе проектирования класса или структуры. В C++ всё по-другому. Ты создаёшь класс, например, сетевого пакета, полностью абстрагируясь от того, кто и какими способами будет владеть объектами этого класса. А способы могут быть самы любые. Объект одного и того же класса может быть создан в куче, в автоматической памяти (aka стек), в динамической памяти и т.п. А может всё свое время жизни существовать в виде временного объекта или даже в компайл-тайме! Поэтому в С++ вопросы владения не принято встраивать внутрь класса. А ты по инерции пытаешься сишарпные подходы применять в С++ и тебе кажется, что это "вопросы наглядности".
Re[9]: Про перемещение (на примере кода)
Здравствуйте, Shmj, Вы писали:

S>Но еще есть вопрос наглядности — а это тоже важно. Чтобы получать нужную часть пакета — одной удобной строчкой с внятным названием — т.е. чтобы вся магия манипуляции с байтами — была не видна при взаимодействии.


Смотри, есть одно важное отличие С++ от С#, на которое ты до сих пор не обратил внимания. В C# все типы делятся на две группы — ссылочные типы и типы-значения. В связи с этим, способ владения объектами предопределен ещё на этапе проектирования класса или структуры. В C++ всё по-другому. Ты создаёшь класс, например, сетевого пакета, полностью абстрагируясь от того, кто и какими способами будет владеть объектами этого класса. А способы могут быть самы любые. Объект одного и того же класса может быть создан в куче, в автоматической памяти (aka стек), в статической памяти и т.п. А может всё свое время жизни существовать в виде временного объекта или даже в компайл-тайме! Поэтому в С++ вопросы владения не принято встраивать внутрь класса. А ты по инерции пытаешься сишарпные подходы применять в С++ и тебе кажется, что это "вопросы наглядности".