Объекты: передача в функцию и возвращение результата
От: Аноним  
Дата: 21.05.04 04:57
Оценка:
Нужно реализовать класс так, чтобы с объектами можно было работать "напрямую", без ссылок.
Пример: MFC-шный класс CString:

CString dbl(CString str){
    CString tmp = str + str;
    return tmp;
}


Как это сделать?
Re: Объекты: передача в функцию и возвращение результата
От: Андрей Россия  
Дата: 21.05.04 05:09
Оценка:
Здравствуйте, Аноним, Вы писали:

skip

Реализовать в своем классе конструктор копирования, можно еще оператор присваивания
Re[2]: Объекты: передача в функцию и возвращение результата
От: MrZ Россия  
Дата: 21.05.04 05:12
Оценка:
Здравствуйте, Андрей, Вы писали:

А>Реализовать в своем классе конструктор копирования, можно еще оператор присваивания


Это-то понятно, но этим решается только проблема передачи копии объекта внутрь функции.
А с возвращением результата что делать?
(или я неправ?)

ЗЫ: Заглавный пост — мой.
Re[3]: Объекты: передача в функцию и возвращение результата
От: Андрей Россия  
Дата: 21.05.04 05:16
Оценка:
Здравствуйте, MrZ, Вы писали:

skip

Этим решается и передача параметра по значению и возврат результата по значению.
Re[4]: Объекты: передача в функцию и возвращение результата
От: MrZ Россия  
Дата: 21.05.04 06:50
Оценка:
Здравствуйте, Андрей, Вы писали:

А>Этим решается и передача параметра по значению и возврат результата по значению.


Черт, точно...
Спасибо
Re: Объекты: передача в функцию и возвращение результата
От: Кодт Россия  
Дата: 21.05.04 08:21
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Нужно реализовать класс так, чтобы с объектами можно было работать "напрямую", без ссылок.

А>Как это сделать?

Нужно сделать "дешёвые" конструктор копирования и оператор присваивания.
Например, все данные вынести в отдельную структуру, а в объекте — умный указатель на неё, с разделяемым владением.
http://www.rsdn.ru/Forum/?mid=641912
Автор: Кодт
Дата: 16.05.04
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.