Вот и дадим соискателю возможность реализовать недостающий с его точки зрения функционал.
Заодно поинтересуемся - каким боком тут placement new нарисовался.
Вот и дадим соискателю возможность реализовать недостающий с его точки зрения функционал.
Про placement new я не понял, если честно, где тут его нашли.Мальчик-Одуванчик wrote: 26 Sep 2021 01:11Вот и дадим соискателю возможность реализовать недостающий с его точки зрения функционал.
Заодно поинтересуемся - каким боком тут placement new нарисовался.
Проверить как соискатель может самостоятельно реализовывать простейшие структуры данных: Вы правильно обратили внимание на правило пяти при отсутствующем конструкторе по-умолчанию.M. Ridcully wrote: 26 Sep 2021 06:28 А от senior-а ожидал бы просто недоумения - нафига козе боян, чего хотим в итоге получить? Чем не подошли std::string, std::vector, ну или smart pointers на крайняк?
Мальчик-Одуванчик wrote: 25 Sep 2021 03:47Ну вот простейший, но уже достаточный для обсуждения, пример класса со строкой:nickb wrote: 25 Sep 2021 00:58 Я часто использую такой подход ... даю кусок кода и прошу рассказать, что тут происходит. И что можно улучшить.
struct MySmartPrt {
MySmartPrt (char *str): { ptr=new char(strlen(str)+1); strcpy(ptr,str); };
~MySmartPrt { delete ptr; }
private:
char *ptr;
}
Неужели после вопроса как обобщить код до использования с разными типами не догадались бы?OtherSide wrote: 26 Sep 2021 12:52 Ну и каким образом из вашего говнокода я должен догадаться что вы хотите что бы я вспомнил о темплейтах и static_assert?
И где по смыслу класс, а где структура - вот это что к примеру?OtherSide wrote: 26 Sep 2021 12:52 лепить структуру там где по смыслу класс - очередной признак говнокода. Опять же мое мнение, и мне похоже надо угадать, а думаете ли вы так же.
Code: Select all
struct Book
{
Book( std::string title, std::vector<std::string> authors)
:_title(std::move(title)), _authors(std::move(authors))
{
}
std::string _title;
std::vector<std::string> _authors;
}
C вводом С++11 видение поменялось, как и поменялись правила стиля. Если данные изменяются независимо друг от друга и все публичны то используются структуры.OtherSide wrote: 26 Sep 2021 14:17 Структуру используют в c-style коде, а плюсах - class
Я бы использовал еще структуру еще там, где она по смыслу близка к сишному пониманию. Ну т.е. объеденитить несколько публичных полей, без планов объединения с кодом, тем более наследования
Т.е. когда пишешь в коде struct ты как бы намекаешь другим что код тянется со времен си и где-то там требует совместимости и не планирует расширяться.. я бы это так воспринял
Ну про тонкости и ограничения в embedded С++ знают либо те, кто с оным реально работал, либо люди с феноменальной памятью, где-то прочитавшие и запомнившие. А задачка - очень неплоха для начала разговора.Мальчик-Одуванчик wrote: 26 Sep 2021 07:58 (Мне, например в микропроцессоре ни вектор, ни строка сроду не уперлись из-за ограничений по памяти и нежелательности исключений)