C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Функции в c++, Как правильней?
__Cheat3r
Отправлено: 26.01.2006, 16:59


Станционный диспетчер

Группа: Участник
Сообщений: 110



Доброго времени суток.
Хочется узнать , какая из функций будет лучше(и как это должно выглядеть по стандарту)

Существует
CODE
AnsiString myStr="'Hello world";

и есть 2 функции :
CODE

String DoTrim(String inStr)
{
return inStr.SubString(1,5);
}

и
CODE

void DoTrimEx(String &inStr)
{
inStr = inStr.SubString(1,5);
}



Пользуемся:
CODE

myStr=DoTrim(myStr);
//или
DoTrimEx(myStr);

Какой из них будет воспользоваться правильней? ведь они делают одинаковые операции..
PS Функции для примера. У меня они гораздо больше

Спасибо за ответы ...
gvg
Отправлено: 26.01.2006, 17:21


Машинист паровоза

Группа: Участник
Сообщений: 222



Разница в том, что в первом случае возвращаете строку не испортив исходную, а во-втором — портите.
__Cheat3r
Отправлено: 26.01.2006, 17:28


Станционный диспетчер

Группа: Участник
Сообщений: 110



myStr=DoTrim(myStr); — как раз-таки порчу...
gvg
Отправлено: 26.01.2006, 18:28


Машинист паровоза

Группа: Участник
Сообщений: 222



Ну это уже не в функции...
Grigoriy
Отправлено: 26.01.2006, 18:55


Мастер участка

Группа: Участник
Сообщений: 381



Где не вызывается конструктор копирования, та функция выполняется быстрее. Это есть мо моему мнению основное...

Вернуться в Вопросы программирования в C++Builder