Russian Qt Forum

Программирование => С/C++ => Тема начата: evgeniy от Февраль 05, 2015, 20:40



Название: Удаление статического указателя
Отправлено: evgeniy от Февраль 05, 2015, 20:40
Мне нужен статический указатель в классе. Этот указатель должен создаваться при создании первого объекта класса и удаляться при удалении последнего объекта класса.
Какой самый простой способ решения такой задачи?


Название: Re: Удаление статического указателя
Отправлено: ksk- от Февраль 05, 2015, 21:17
Видимо, завести счётчик экземпляров класса.


Название: Re: Удаление статического указателя
Отправлено: Fregloin от Февраль 26, 2015, 15:34
читайте про singleton


Название: Re: Удаление статического указателя
Отправлено: sergek от Февраль 26, 2015, 15:55
Не понял проблему. Вроде очевидно:
Код:
class A
{
  static char* ptr;
  static int cnt;
  A();
  ~A();
};

char* A::ptr = 0;
int A::cnt = 0;
A::A()
{
  if(!cnt++)
    ptr = new ...
}
A::~A()
{
  if(!--cnt)
    delete ptr;
}

Инициализация нулем не обязательна - для наглядности.


Название: Re: Удаление статического указателя
Отправлено: __Heaven__ от Февраль 26, 2015, 16:48
Иметь статический QList указателей на экземпляры класса...