В классе надо завести статическое поле -- счётчик объектов класса, который увеличивается на 1 при каждом вызове конструктора и уменьшается на 1 при каждом вызове деструктора.  Конструктор класса создаёт нужный тебе "полустатический" член только в том случае, когда счётчик равен 0, деструктор уничтожает "полустатический" член, когда счётчик после уменьшения равен 0.
Пример: класс Object с разделяемым  динамически управляемым ресурсом типа Resource
// простейший ресурс
class Resource {
public:
    Resource() { std::cout << "Resource allocated" << std::endl; }
    ~Resource() { std::cout << "Resource released" << std::endl; }
};
class Object {
private:
    static unsigned int objcount;      // счётчик "живых" объектов
    static Resource * resource;        // "полустатический" член класса
public:
    Object() {
        if (objcount == 0) resource = new Resource();  // захватить ресурс только при создании первого объекта
        ++ objcount; /* инициализация объекта */
        std::cout << "Object created: number of objects " << objcount + 1 << std::endl;
    }
    ~Object() {
        -- objcount; /* очистка объекта */
        std::cout << "Object destroyed: number of objects " << objcount << std::endl;
        if (objcount == 0) {                        // освободить ресурс только при удалении последнего объекта
            delete resource;
            resource = 0;
        }
    }
};
Пример использования 
unsigned int Object::objcount = 0;
Resource * Object::resource = 0;
int main()
{
    std::cout << "Before creating objects" << std::endl;
    Object * o1 = new Object();
    Object * o2 = new Object();
    Object * o3 = new Object();
    delete o1;
    delete o2;
    delete o3;
    std::cout << "After destroying objects" << std::endl;
    return 0;
}
После компиляции и исполнения примера на консоль выводятся строки
Before creating objects
Resource allocated
Object created: number of objects 2
Object created: number of objects 3
Object created: number of objects 4
Object destroyed: number of objects 2
Object destroyed: number of objects 1
Object destroyed: number of objects 0
Resource released
After destroying objects
Видно, что ресурс захватывается при создании первого объекта, и освобождается при удалении последнего. Порядок создания и удаления объектов роли не играет.