R>Необходимо чтобы один и тот же объект не мог создаться пока преведущий существует.
Не подойдет ли паттерн "одиночка" (singleton)?
class MyClass;
MyClass& GetMyObject();
class Myclass
{
friend MyClass& GetMyObject();
private:
MyClass();
...
};
MyClass& GetMyObject()
{
static MyClass myObject;
return myObject;
}
Теперь можно получить ссылку на единственный экземпляр класса MyClass, т.е. создать их несколько одновременно нельзя. Обрати внимание, что конструктор помещен в приватную секцию класса, а функция GetMyObject() объявлена дружественной, что позволяет создание объектов класса только при помощи GetMyObject().