Albor » 14 ноя 2008, 06:42
При чём здесь преобразование? При передаче параметра по значению, функция работает с копией переданной переменной, которая, по завершению работы функции, уничтожается, а оригинал остаётся без изменений. Присвой указателю bb, какое либо значение, например 0, поставь точку останова на строку, освобождающую память и запусти дебаггер. Ты увидишь, что значение указателя не изменилось. Если использовать прототип B* d(); - это значит, что ф-ция возвращает указатель на B, а bb=функция, сохраняет возвращённое значение в переменной bb. А если передать параметр по ссылке, то функция будет работать с оригиналом переменной, который, при выходе, не уничтожается. Надеюсь объяснил понятно.
При чём здесь преобразование? При передаче параметра по значению, функция работает с копией переданной переменной, которая, по завершению работы функции, уничтожается, а оригинал остаётся без изменений. Присвой указателю bb, какое либо значение, например 0, поставь точку останова на строку, освобождающую память и запусти дебаггер. Ты увидишь, что значение указателя не изменилось. Если использовать прототип B* d(); - это значит, что ф-ция возвращает указатель на B, а bb=функция, сохраняет возвращённое значение в переменной bb. А если передать параметр по ссылке, то функция будет работать с оригиналом переменной, который, при выходе, не уничтожается. Надеюсь объяснил понятно.