Есть условный класс
class A{
public:
int data;
A(int d){
data = d;
};
~A(){
// тут качественная чистка
};
};
int main(){
A* pa = new A(10);
if (pa){
cout << pa->data;
}
delete pa;
if (pa){
cout << pa->data;
}
system("Pause");
return 0;
}
Как проверить существует ли указатель или был удален?
Было бы шикарно если бы это делалось перегрузкой какого то оператора и созданием у класса флага(удобно будет исходя из моей задачи).
Я просто реализую умный указатель по
этому мануалу(все норм крч работает) и мне нужно добавить проверку существования указателя, а точнее данных в нем.
У меня стоит задача реализовать smart_ptr самому(задание в универе).
ЗаданиеС++: Smart_ptr. Реализуйте класс предоставляющий пользователю семантику указателя с подсчетом количества ссылок на указываемый элемент. Когда количество ссылок становится равным нулю, указываемый элемент должен быть уничтожен автоматически. Предусмотрите внешнее хранение данных для количества ссылок на элемент. Необходимо чтобы ваш указатель можно было использовать в выражениях вида if (p) {}.