Допустим, у меня есть три класса окон, по одному для каждой ОС, которые я хочу поддерживать:
- WindowsWindow
- OSXWindow
- LinuxWindow
Все они наследуются от класса Window . Это также класс, который вы создаете.
Класс Window имеет свой. -> и :: операторы перегружены, и в зависимости от того, на какой ОС работали (на основе IFDEF), он приводит указатель this к соответствующему классу.
Что я хочу сделать, это просто создать экземпляр Window без какой-либо подсказки о том, какая ОС работает. Это неправильное мышление? Опасен ли опасный? Есть ли лучшие способы сделать это?
Я знаю, что для этого есть библиотеки, но я хочу попробовать это сам.
Полагаю, самый простой способ - создать фабрику. Но можно ли что-то подобное сделать?