В нескольких примерах на просторах сети можно найти следующие вещи. Допустим имеем несколько определений:
class foo{
protected:
int* numb;
public:
foo(int* ptr_to_numb){
this->number = ptr_to_numb;
}
~foo(){
delete this->numb;
}
}
void show_int(int* ptr_to_number){
std::cout << *ptr_to_number << std::endl;
}
Затем выполним:
foo exmpl(new int(7));
show_int(new int(7));
Что будет с аргументами, переданными в конструктор и функцию? (Если не принимать во внимание оптимизаций компилятора)
В вашем примере delete
уже наличествует в деструкторе foo
. Именно оно, по замыслу автора класса, и должно удалить объект, указатель на который вы передавали в конструктор.
Что касается варианта с функцией, то в вашем варианте вы можете либо удалить объект внутри функции, либо где-то запомнить указатель на него для долгосрочного хранения (и последующего удаления).
То, что написано в варианте с функцией у вас сейчас, порождает классическую утечку памяти - объект не удаляется и доступ к нему теряется безвозвратно.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Вокруг ведущего стоит N человек, которые пронумерованы по часовой стрелку числами от 1 до NВедущий, начиная с первого отсчитывает M человек...
Пишу несложную базу данных (использую простоtxt файлы) на c++ Вот так выглядят данные в файле
Не могу разобраться почему у меня не работает findText в QWebEnginePage, я точно знаю что текст на странице есть, а он пишет false:
Хотите улучшить этот вопрос? Update the question so it's on-topic for Stack Overflow на русском