Вопрос несколько идеологичен...
Вот объясните мне зачем в С++ ввели ссылочный тип данных.
Не надо тока меня к умным книгам отсылать.
Да понятно удобно в функции-члены передавать.
А вот например возврат из метода по ссылке?
В методе треба при этом динамически распределить возвращаемое значение - так class_name *A = new class_name(...)
и возвратить return *A.
Ecли создавать как class_name A(...)
То ессно ничего не выйдет(при возврате по ссылке)...
Пусть для классов написана некая функция, возвращающаяя результат по ссылке.
class classname
{
....
classname& G();
....
}
Где нибудь в проге пишем
classname A(...);
for(int i=0;i<10000000;i++)
A.G();
Все замечательно ломается...
Ну понятно -память течет... так как возвращаются в нирвану ссылки на динамически распределенные в функции G объекты...
При этом программа не ломается, а просто кушает память... Система уходит в SWAP...
А так нет.
classname *B;
classname A(....);
for(int i=0;i<10000000;i++)
{
B=&(A.G());
delete B;
}
Ну конечно все работает....
Вопрос: С этим бороться довольно тяжело, и все равно приходится прибегать к помощи указателей....
Согласен, что когда в проге 3-4 экземпляра класса то все ОК.
А когда куча динамических данных+куча экзкмпляров(вычисления на классах).
В принципе проблема решается... но зачем оно надо?
Вот в Java сделано умно'. Нет ссылки - удаляем...



Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум PIMPL без указателя (2016)
- Форум Ссылочная целостность интернета (2014)
- Форум Типы (2007)
- Форум Типы коллекций (2020)
- Форум Типы файлов (2020)
- Форум Приведение типов (2017)
- Форум приведение типов (2016)
- Форум Haskell типы (2020)
- Форум типы данных (2020)
- Форум типа пасхалка? (2014)