たとえば、C++ で記述された架空のスクリプト言語用の架空の型システムがあり、スクリプト言語の各型 (およびオブジェクト) が、基になる実装言語に対応する型 (およびオブジェクト) を持っているとします。この架空の型システムの基本クラスは Object と呼ばれるクラスであり、他のすべてのクラスはこのクラスから派生する必要があります。これで、すべての変数ストレージの基礎となる HashTable と呼ばれる別のクラスができました (間違っていると言ったかもしれません)。問題のポイントは、インスタンス変数も HashTables に格納されていることです。
インスタンス変数は、すべてのオブジェクトがそのインスタンス変数を格納する HashTable を持つようなものです。ただし、HashTable は必ず Object から派生するため、各 HashTable にはインスタンス変数を格納する HashTable があります。そして、すべての HashTable のすべての HashTable には HashTable があります。
私の質問は、この型システムを基になる C++ コードでオブジェクト指向の方法で実装できるかということです。予防策を講じないと、プログラムは無限ループに入り、Object の単なるインスタンス化でスタック オーバーフローを引き起こします。これは、HashTable をインスタンス化する Object の親コンストラクターを呼び出す HashTable をインスタンス化するためです...
目的の OO 設計を壊すことを伴わない、この設計上の欠陥に対する実行可能な回避策はありますか?
この投稿の文法についてはご容赦ください。英語は私の母国語ではないため、わかりやすい方法で何かを説明できていない可能性があります。