Eugie » 06 ноя 2004, 16:22
DeeJayC прав, COut надо передавать по ссылке.
Когда ты начинешь писать с COut, внутренний указатель в COut отсоединяется от оригинальной строки и подключается к новому буфферу, который не возвращается.
...
Ссылки не используй - эти специальные костыли нужны чтобы возвращать величины,
хранимые в контейнерах, "по значению", если перегружен operator[](...) или operator*().
Absurd, ты не прав. Передача параметра в функцию по ссылке - один из стандартных способов, если тебе нужно вернуть несколько значений. По сути, ссылка - тот же указатель, только операции взятия адреса и разыменования выполняются автоматически самим компилятором. Не веришь - посмотри под отладчиком.
В основном, программисты предпочитают языки, которые наиболее легко позволяют превратить проект в помойку.
Это вопрос грамотного управления проектом. Программист всегда предпочитает пользоваться теми средствами, которыми владеет лучше (или думает, что владеет
).
А потом кому-то приходится cостыковывать pointer - based API, reference - based API, библитеки написанные мудаками и бросающие исключения, библитеки написанные нормальными людьми и не бросающие исключения итд.
Любое более-менее сложное решение подразумевает состыковку. Это нормальная часть работы программиста, работающего в команде. Насчет мудаков и исключений - не вижу корреляции.
[b]DeeJayC[/b] прав, COut надо передавать по ссылке.
[quote]Когда ты начинешь писать с COut, внутренний указатель в COut отсоединяется от оригинальной строки и подключается к новому буфферу, который не возвращается.
...
Ссылки не используй - эти специальные костыли нужны чтобы возвращать величины,
хранимые в контейнерах, "по значению", если перегружен operator[](...) или operator*().
[/quote]
[b]Absurd[/b], ты не прав. Передача параметра в функцию по ссылке - один из стандартных способов, если тебе нужно вернуть несколько значений. По сути, ссылка - тот же указатель, только операции взятия адреса и разыменования выполняются автоматически самим компилятором. Не веришь - посмотри под отладчиком.
[quote]В основном, программисты предпочитают языки, которые наиболее легко позволяют превратить проект в помойку.[/quote]
Это вопрос грамотного управления проектом. Программист всегда предпочитает пользоваться теми средствами, которыми владеет лучше (или думает, что владеет :) ).
[quote]А потом кому-то приходится cостыковывать pointer - based API, reference - based API, библитеки написанные мудаками и бросающие исключения, библитеки написанные нормальными людьми и не бросающие исключения итд.[/quote]
Любое более-менее сложное решение подразумевает состыковку. Это нормальная часть работы программиста, работающего в команде. Насчет мудаков и исключений - не вижу корреляции.