このようにして、グローバルな宣言とグローバルな空間を保存しています。実際には、望むインタフェースを得られない時に、エラーを検出します。*aInstancePtrの使用の繰り返しやそれに対する代入の繰り返しは、コンパイラの最適化を困難にしますが、これを避けています。実装より少ないコードを生成します。使って、間違った入力をテストしています。インタフェースを実装しています。マクロを使って、この関数を書くことができます。(もっともマクロを勧めるのは気が進まないのですけど。マクロを使うことができます。マクロを使うことができます。マクロを使った時に実行されます。呼び出す時々、多くのインタフェースをサポートする実装に、単にひとつか二つのインタフェースを加えたい場合があるでしょう。テストした後で、元の実装を呼び出したいでしょう。これにより、コードスペースと複雑さが低減されます。以下のコードでは、異なっている部分が強調されています。残りのすべてを提供します。チェックしないでください。インタフェースを見付けることができませんでした。このクラスのベースクラスがやってくれるでしょう。呼び出してはいけないことに注意してください。上記のコードでは、このことが考慮されています。それ自身で使われている完全なクラスであるために、正常に動作します。このテクニックは、複数の完全なクラスから派生した時は、あまり適切ではありません。順番にこだわるのであれば、このテクニックを使うことができます。...もし不可能でないとしても、あなたのベースクラスのどれかが本当の集約に加わって、正常に動作させるのは困難でしょう。対する呼び出しを捕まえることはできないでしょう。それができたとすると、間違ったインタフェースを返すかもしれません。集約を避ける、また複雑な階層構造を避けるもう一つの理由があります。マクロを使うことができます。一般的に私は、マクロが異なる状況で異なるテキストへ拡張されるマクロでない限り、認めません。異なるプラットフォーム、デバッグ時と非デバッグ時、などです。そのような場合、マクロなしで済ますことはできません。他の場合では、マクロはいくらかの人々を助けるかもしれませんが、しばしば他の問題に悪い影響を与えます。それらは、常にプログラムソースをより脆弱にしてしまいます。この場合、マクロは便宜のためだけのものであり、私はこれを勧めはしませんが、代案としては示そうと思います。らが、価値あるフィードバックをしてくれたおかげで、ここに載せた実装を著しく改善することができました。inbox.現在、ニュースレターは英語でのみ提供されています。従って私の個人情報を扱うことに同意します。