はじめに
API を設計するとき、開発者はポインタを使用するかどうかの選択に直面します。または、引数を渡して値を返すための参照。どちらのメカニズムもオブジェクトのデータへのアクセスを許可しますが、それぞれのメカニズムがいつ適切であるかに影響を与える異なる特性を示します。
参照を使用する場合
次のような状況では参照が優先されます。
ポインターを使用する場合
ポインターは次の場合に必要です。
例
指定されたコード スニペットでは、ポインターを使用して引数 'n' を表すと明確になります。これは、参照バージョンとは異なり、関数が引数を変更することを明示的に示しており、混乱を招く可能性があります。
void add_one(int& n) { n += 1; } // not clear that 'a' may be modified void add_one(int * const n) { *n += 1; } // 'n' is clearly passed destructively
パフォーマンスに関する考慮事項
ポインターと参照は、以下の場合と同様に実行されます。ほとんどの場合。ただし、特定のコンテキストでは、ポインタの逆参照は、参照にアクセスする場合と比較してパフォーマンスのオーバーヘッドがわずかに発生する可能性があります。
推奨事項
最終的に、ポインタと参照のどちらを使用するかの決定は、特定のAPI の要件。一般的なガイドラインに従ってください。可能な限り参照を使用しますが、必要に応じてポインターに切り替えます。トレードオフを慎重に考慮することで、設計者は明確かつ効率的な API を作成できます。
以上がAPI 設計におけるポインターと参照: いつどちらを選択すべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。