私は最近、いくつかのコードを見て、誰かがこれを使用:逆参照ポインタへの参照を作成しますか?
void Foo(vector<vector<int>>* arr_ptr){
vector<vector<int>>& arr = *arr_ptr;
//use arr
}
が間接参照ポインタへの参照を作成するが目的か?限り、ポインタがヌルでないと、同じ結果はこれを使用して実行することができませんでした:それはこのメソッドを呼び出すコードに同じではないでしょう
void Foo(vector<vector<int>>& arr) {
//use arr
}
実際、参照を取得するには関数を変更するのが理想的です。しかし、おそらく他にもいくつかの設計上の制約があります(それはおそらく仮想関数なのでしょうか?)、あるいは従来の習慣か、まったく平凡ではありません。 – TheUndeadFish
@TheUndeadFish:または、著者の管理下にない他のコード( "習慣的な習慣"から "習慣"を差し引いたもの)とインターフェースするためには、この方法が必要です。 –
@TheUndeadFish:コードのインターフェイスの完全性を維持することは、ほとんど「控えめ」です。 –