Я не эксперт, и задания я не понял. Динамического выделения памяти в классе String я не вижу. Конструктора класса я тоже не вижу. Если от тебя просят, чтобы последняя строка кода возвращала boolean true/false, тогда тебе надо 1) Написать конструктор для класса 2) Перегрузить + и == 3) И хранить данные где-то в этом классе, например в *s - тогда сделай его статическим массивом
>>239262624 Ну дак, блядища ты упоротая, добавь статический массив. Понабирают дегенератов, а потом калькуляторы на 4 действия требуют 4 ядра/4 гига и крашат всю систему при попытке поделить на ноль или сложить два максимальных числа.
>>239263017 > во время плюса сохраняй указатели на остальные строки и при сравнении проходи по ним по очереди. Ну и где он их сохранит как не в векторе? А это опять таки парампампам - динамическая память.
>>239263468 > >где ты все это будешь хранить? > Нууу не знаю... Можно же как-то сделать наверное... Ага. Можно ткнуть препода ебалом в некорректное условие, после чего выясняются какие нибудь нюансы и ограничения. Типо строка не длиннее 1024 символа или сорт оф...
>>239263723 Нет, не нормально. Еще раз - количество слагаемых неограничено, результирующая строка не ограничена. Ну и где ты собрался это все хранить? Размер стека к слову мало того что ограничен так еще и крайне мал, что то в районе 8 метров на поток.
>>239264041 А нахер вообще хранить все в одном классе, достаточно при сложение сохранять указатель на следующий класс, что-то вроде списка в итоге получится
>>239264156 А. Я тут подумал - видимо этот шизик хочет односторонний список. Добавляешь поле String* next или prev (не помню как оператор сложения работает, this будет слева или справа) и по оператору сложения добавляешь элемент в список.
>>239264321 > А нахер вообще хранить все в одном классе, достаточно при сложение сохранять указатель на следующий класс, что-то вроде списка в итоге получится У опа в примере эти "классы" выделяются на стеке, а значит после конца выражения все указатели будут мёртвые
>>239264633 Они не сложные, они ебанутые и неправильно/некорректно сформулированные. Потому что в этой стране все делают на отъебись, а у преподов естественный отбор - там остаются дауны которые не могут лавешку зашибать работая 300кк в наносекунду
>>239264321 Двачую, Итогово нужно: 1. Конструктор сохраняющий указатель на строковый литерал 2. Что-то типа члена string* next, Оператор + который будет в этот next сохранять указатель второго слагаемого 3. Оператор ==которыц будет уметь пробегаться по всем строкам в списке
Ну и это дрочево конечно, ибо работать оно будет только в ограниченном количестве случаев, конда указатели s и next будут валидны
>>239264946 > 2. Что-то типа члена string* next, Оператор + который будет в этот next сохранять указатель второго Вот тут то ты и проебался. Чтобы этот указатель получить нужно сделать new String(), а у нас что сказано?
>>239265366 > Але мань, а объекты на стеке адреса не имеют? Мань, объекты на стеке будут уничтожены сразу как отработает оператор сложения, так что у тебя останутся адреса на стеке с мусором.
>>239265577 > ты дебил? сохраняй ссылку на левую и правую строки при суммировании Долбоеб, во первых ссылки присваивать можно только в конструкторе в списке инициализации - в операторе сложения ты в пролёте, только указатели. Во вторых - дегенеративные ебучий, ты знаешь что такое область видимости, время жизни? Ты сохранишь указатели на мёртвый объект.
> мимо 300к Зимбабвийских копеек. Не позорься, школотрон.
>>239265827 Оно не сложное, оно некорректное. Я готов поставить анус или даже деньги что если ты принесешь вариант препода который он считает правильным - там или все же будет использование динамической памяти (со словами ЭТО ДРУГОЕ), или подразумевается какой то лимит (максимальная длина строки, максимальное количество слагаемых...)
>>239265966 В задании ж написано, что нужно чтобы работало в приведённом примере, так что можно предположить, что должно работать только с 3 слагаемыми.
>>239266304 > Ну блин, стрёмно дописывать массив там где есть char s( Кстати за это тоже препода можешь обоссать, там никак не может быть char в вышеупомянутом примере. Строковые литералы по определению константны. И к слову это всегда массивы, то есть вот такая "хуйня" это const char[11]
>>239266557 Чувак, вот этот "текст" - это строковой литерал. Он хранится в (если взять линукс к примеру) в секции .rodata в elf-бинаре. Ну константа это, сука! А сделать обычный указатель из константного - это UB и пиздец.
>>239268194 Крутой. А я вот только начинающий. Тоже С++. Надеюсь что когда нибудь смогу зарабатывать от 60 тысяч рублей в месяц. Ибо в нашей мухосрани минималка 12 тысяч с хуем. А это пиздец.
>>239268331 Потому что туда еще никто ничего не записал. Это гайзенбаг блять, проявится когда нибудь когда ты этого не ждешь. Это классический выстрел себе в ногу.
>>239268391 Вообще мне тоже кажется что может наебнуться, но с другой стороны возможно что-то в стандарте есть про это, наподобие продлевание времени жизни rvlaue приприсвоении к const ref
>>239268488 Чувак, когда что то сразу не работает это благо. А если ты все же минуешь макдак и станешь работать погромистом то поймешь, что самые злоебучие баги это когда казалось бы работает. А потом фаза луны изменилась, или из отладочного в релизный переключил, или оптимизатор заработал - и пиздарики.
я правильно прочитал, что даже техлиды С++ типа >>239267599 проебываются с очищением памяти и временем жизни обьекта даже в универских задачках для дебилов?
Тогда получается, что c# и java с мемори менеджментом рулят
>>239268703 В двух словах, код анона работает, но лазит по памяти, в которой лежат уже удаленные объекты, и какбы вот в этом случае оно работает, но в каком нибудь другом может случиться что угодно
>>239268257 §12.2/5 [class.temporary]: A temporary bound to a reference parameter in a function call (§5.2.2 [expr.call]) persists until the completion of the full expression containing the call.
Если ты не запоминаешь значение суммы в переменную, все живое, пока не выполнится вычисление. Для выполнения задачи этого достаточно.
>>239269184 Он имеет в виду что сперва выполнится operator == а потом уже деструкторы. Но если ты запишешь это не в одну строчку то уже поймаешь пиздарики, что я и заскринил.
>>239269152 Ну скорее тут решается задачка, сжелать рабочим подобные сравнения в одеу строку) непонятно надо ли оно тому преподу, но код анона вполне работает для таких кейсов, если я правильно понимаю ввдержку из стандарта
>>239269677 Ну он бы тогда неправильно сравнивал неравные строки) Еще раз, я пытаюсь понять для себя, та выдержка из стандарта, гарантирует, что код анона нормально отработает для однострокового кейса, как в примере оригинальном или всетаки это ub
>>239269973 Точнее совсем не тот. Эти временные стринги живут ровно столько сколько выражение, и то что ссылки на них в классе запоминаются - их время жизни нисколько не продлевает.
>>239270225 Еще раз - я уверен что можно видоизменить выражение чтобы уже в нем ловить сегфолт. Скобки там поставить или с приоритетом вычисления поколдовать...
Ебать, я тут петон с джангой пытаюсь год освоить чтоб сайтики пилить и нихуя не получается. Читаю тред - это просто эльфийские руны какие-то, я даже примерно не понимаю, что происходит, ебать вы умные.
>>239270300 Шизик, выпиши выражения из задания и посмотри, что вызовется раньше - деструкторы или оператор сравнения. Ты походу такой же долбоеб-студент как и ОП.
Итак, господа эксперты, финальный аопрос, вызываются ли деструкторы до сравнения для примера опа? Если нет, то код анона ня, сам анон ня, и вообще, принимаю ислам
>>239265833 про указатели слышал? а так с таким условием человеку намекают на то что надо сделать свой smart_ptr простенький. ну или стандартным воспользоваться.