私はフォーラムを検索しましたが、なぜ回避すべきかという答えは見つかりませんでした。なぜそれが特効薬ではないのかだけです。ですから、この質問は重複しているとは思いません。
そこにあるVALIDに慣れて、私はシステムハンガリーIを捨て去る必要がある理由は?
これまでのところ、私はそれを使用することで以下の利点を見ています:
- 一貫した変数の命名
- 検索せずにタイプが表示されます(インテリセンスは半分の時間でデッド/インデックス付けされているため、依然として正当な理由です)
- セマンティクスは名前の2番目の部分に引き続きパックできます
そして、次のマイナス面:
- 一部の人々を困らせます(理由はわかりません)
- 型が変更された場合、その型は変数の名前と一致しない可能性があります(正当な理由ではないと思います。型はめったに変更されず、「すべての名前を変更」します)
なぜ:
vector<string> vecCityNames;
wstring strCity = L"abc";
//more code here
vecCityNames.push_back(strCity);
より悪い:
vector<string> cityNames;
wstring city = L"abc";
//more code here
cityNames.push_back(city);//Are we pushing back int on a queue? Float on a stack? Something else?
vectCityNames
ことがvectStringCityNames
、あなたの一貫性のある引数のために多く、この「質問」は、より暴言の何よりも、あなたはあなたの心がアップしてきたが、これは閉鎖されるべきです。
cityNames.push_back(city)
はかなり明確です。これは都市名のリストであり、追加しています。