Я работаю над звуковой библиотекой (с OpenAL), и, черпая вдохновение из интерфейса, предоставленного FMOD, вы можете увидеть интерфейс по этой ссылке .
У меня естьПри наличии некоторых концепций, таких как: Sound, Channel и ChannelGroup, как вы можете видеть через интерфейс FMOD, все эти классы имеют приватный конструктор, и, например, если вы хотите создать Sound, вы должны использовать функцию createSound () предоставляется классом System (то же самое, если вы создадите Channel или ChannelGroup).
Я хотел бы предоставить аналогичный механизм, но я не понимаю, как он работает.Например, как функция createSound () может создать новый звук?Конструктор является приватным, и из интерфейса Sound нет никаких статических методов или дружбы.Используются ли некоторые шаблоны?
РЕДАКТИРОВАТЬ: Просто, чтобы прояснить вопрос OP, он / она не спрашивает, как создать экземпляр класса с закрытым конструктором, Вопрос в размещенной ссылке, как этосозданы экземпляры классов с закрытым конструктором и без статических методов или функций-друзей.
Спасибо.