私はコードの一部ハーブサッターによって「デフォルトで...グッドC++ 14の作成」CppConを見て、スライドの1に従っていました:私の質問がある"each for"ループが項目に対してnullptrを返す場合?
auto p = make_shared<circle>(42);
auto v = load_shapes();
for(auto& s: v) {
if(s && *s == *p) {
cout << *s << "is a match\n";
}
}
:
がある理由場合(S & & * sの==の* pを)
チェック! nullptrこと
どのように各 forループによって初期化された変数を参照することができますか?アイテムをループ反復するので、その場合はnullptrの値を割り当てることができますか?
EDIT:sは、それがnullになることができますどのように、 "それぞれの" によって得られた場合
if(s)
: 関心の私のポイントは、このチェックは何のためにあるのかですか?
'v'の型は' std :: vector 'と考えてください。 –
GManNickG
これは参照とは全く関係ありません。参照を使用する場合は、それがバインドされている変数を使用するだけで、 "参照変数"は使用しません。このコードでは、 'v'のオブジェクトはboolに変換できます。コードが参照を使用しているという事実は無関係です。 –
'using namespace std;'は良いコードではありません - これはこの例で暗示されています –