Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Спорно 10.04.03 20:18 Число просмотров: 1072
Автор: Ktirf <Æ Rusakov> Статус: Elderman Отредактировано 10.04.03 20:20 Количество правок: 1
|
> Все тут правильно говорили. Но еще я бы советовал > возвращать не по значению, а по ссылке хотя бы. Тогда и > копироваться будет меньше. Но нужно учесть, если будешь > возвращать по ссылке - конструируй объект не на стеке, а > или в куче или в сегменте данных. Короче примерно так > > > TESTCLASS &TESTCLASS::operator+(char *s) {
> char *buf = new char [length(ptr)+length(s)+1];
> // копирование в result ptr и s;
> TESTCLASS *p = new TESTCLASS(buf); //*> delete[] buf;
> return *p;
> }
>
А удалять это кто будет?
TESTCLASS a("a"), b("b"), c("c");
TESTCLASS d = a + b + c;
И как удалять временный объект, возникший от a+b??? Это, кстати, тема одного из советов у Мейерса. Нельзя использовать ни ссылки, ни указатели - ничего. К сожалению. Здесь должно быть копирование. Всю оптимизацию, буде таковая возможна, проделают компиляторы.
|
|
|