サポートしたい OS ごとに 1 つずつ、3 つのウィンドウ クラスがあるとします。
- Windowsウィンドウ
- OSXウィンドウ
- Linuxウィンドウ
それらはすべてWindowクラスから継承します。これは、インスタンス化するクラスでもあります。Window クラスには . -> および :: 演算子がオーバーロードされ、(IFDEF に基づいて) 実行されている OS に応じて、this ポインターが関連するクラスにキャストされます。
私がやりたいことは、どの OS が実行されているかについての手がかりなしに Window インスタンスを作成することです。この考え方はかなり間違っていますか?ダウンキャストは危険ですか?これを行うためのより良い方法はありますか?
これを行うためのライブラリがあることは承知していますが、自分で試してみたいと思います。
最も簡単な方法は、工場を作成することだと思います。しかし、このようなことができるでしょうか?