Олег Цилюрик: Посмотрите внимательней. Возвращается ссылка на структуру. Поэтому static: чтобы не вернуть ссылку на уничтоженую локальную переменную.
И если бы был возврат по значению, код бы не скомпилировался, так как это привело бы к созданию экземпляра абстрактного класса.
Сергей Попов: В Java ссылки передаются по значению. foo = new Foo; заставит foo указывать на новый объект, остальные переменные, указывающие на старый объект этого не заметят. foo.mutate() изменит объект, и это будет видно через другие ссылки.
Олег Цилюрик: Можно. И все функции string будут работать адекватно. Только в случаях, когда нужна совместимость с c-string и её функциями, хранение нулей может помешать. В остальном, нулевой символ ничем не отличается от других символов, с точки зрения string.
Технически, с 11 стандарта, он обязан хранить завершающий 0 (c_str возвращает строку, заканчивающуюся нулём и адрес возвращаемый ей должен совпадать с &str[0])
Просто завершающий 0 является деталью реализации и не считается логической частью строки (strlen для c-строк тоже его не учитывает)
Роман:
a) Вопрос был про С++. В котором нельзя создавать экземпляры абстрактных классов.
b) Вопрос был про «Чисто абстрактный класс» (pure abstract class), это понятие часто используется среди С++ программистов, чтобы отличать просто абстрактный класс, в котором есть хотябы одна чисто виртуальная финкция, от класса созданного, чтобы быть идентичным понятию интерфейса в других языках.
Чисто абстрактный класс и есть описание сигнатур методов, которые реализующий класс обязан воплотитью
Олег Цилюрик: Назовите нормальный аналог Unity работающий под Linux. Учитывая, что де-факто юнити работает адекватно только с C# , это как минимум привлечёт желающих создавать не особо нагруженные кросплатформенные игры без лишних мучений.
recloudor: Почитав правила поглубже, нашёл, что размещение контента сайтов, включая аватары запрещено. Из уже предложенных Дмитрий Ковальский, Хостинг Картинок также это запрещает, а imagevenue может забанить если любой юзер загрузит что-либо закопирайченое и на это пожалуются.
Имгур, ЕМНИП, имеет платную версию с ослабленными ограничениями. Но я так глубоко не копал, можете написать в саппорт, если надо.
ИМХО пытаться найти сервис, который будет бесплатно размещать контент вашего сайта, бесполезно. Идиотов нет. Либо платные подписки, либо своя файлопомойка.
vPolyanchych: Вас спрашивают, что должно получится в итоге. Как вы себе представляете результат слияния? При запуске программы одновременно запускаются 4 оригинальных? Даётся выбор какую запустить? Что-то ещё?
Что у вас есть? Только исполнимые файлы? Исходный код? Другое?
Олег Цилюрик: Осталось только остальные 90% населения в этом убедить и тогда наступит всеобщее благоденствие. А пока приходится помнить про отличия разных ОС и их особенности при написании кода.
Олег Цилюрик: Ну, стандарт ничего не говорит про размер wchar_t кроме "Type wchar_t is a distinct type whose values can represent distinct codes for all members of the largest extended character set specified among the supported locales"
То есть, если единственный поддерживаемый язык — английский, то wchar_t может и 8 бит в размере быть. О чём обычно предупреждается ( icu-project.org/docs/papers/unicode_wchar_t.html ) и ставятся в упрёк С/С++. Недостаточно чёткие требования к wchar_t привели к вводу в стандарт С++ char16_t и char_32_t и соответствующие алиасы для basic_string.
В общем, если нужна 4хбайтный char, нужно использовать 4хбайтный char и не надеяться на то что wchar_t окажется достаточного размера, чтобы вместить в себя все возможные символы.
Олег Цилюрик: Ну, в условии написано "Задано поле n x m квадратных ячеек, в каждой из которых могут находиться посадки огурцов.", так что подозреваю, что m, n и распределение огурцов даётся как вводные данные для каждого запуска.
Факториалы, кстати, там же,.