Это тот вопрос, который должен быть получен ответ от ваших собственных исследований Вот хедз-ап, однако:.
передавать указатели в качестве аргументов функций, когда вы не хотите копировать объекты во время выполнения ионных звонков. Когда вы передаете объект по значению (не по адресу), объект копируется в фрейм стека функций. Если объект является большим определяемым пользователем типом, стоимость копирования может затруднить производительность, если соответствующая функция часто вызывается в критически важных точках.
Еще раз в отношении пользовательских типов вы можете не захотеть перегружать конструктор копирования или перемещать конструктор. Если ваш тип имеет динамически распределенные данные (указатели на объекты в куче), конструктор копии по умолчанию сделает мелкую копию указателя, и в этом случае вызов delete на нем приведет к тому, что данные кучи исходных объектов и данные кучи скопированного объекта будут удаляться из памяти.
int* func()
{
int* _pTemp = new int[10];
return _pTemp;
}
или
int* func(int _iSize)
{
int* _pTemp = new int[_iSize];
return _pTemp;
}
Успехов
стороне: это звучит, как вы изучаете от плохого источника. Кто-то, изучающий C++, особенно если они просто изучают программирование, - не должен иметь дело с указателями и динамически распределять память. Они должны быть, например, научиться использовать «вектор» вместо этого. (действительно, это похоже на то, что вы учитесь писать код ** C **, чем код ** C++ **) – Hurkyl
У меня не было визуальной студии на моем ноутбуке раньше, и мой учитель учил нас в первый раз в ней но теперь я изучаю ООП очень хорошим сэром, но поскольку мои предыдущие концепции не ясны, поэтому я очень боюсь. – teeba