【初心者歓迎】C/C++室 Ver.68【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0562デフォルトの名無しさん
2009/10/10(土) 00:21:05環境はVS2008Expressです。
先ほど2時間悩んだ末に発見した間違いがありまして、これを警告で表示してほしいなぁと思いました。
内容は
Hoge c;//Hogeはクラス
if (略) c = Hoge(0);
else Hoge(1);
というもので、elseの後ろは本来c = Hoge(1)とすべきところを、c=を忘れてしまいました。
気づいて直した後に、警告LV3なのが悪かった、4にしようと最高である4にしました。
期待としては
cが「初期化されていない可能性のあるローカル変数」として警告される。
Hoge(1)は無意味だ〜という警告(ただ、コンストラクタ内でグローバルな変数にアクセスする設計もありえるあるから、これは警告にはできないか・・・?)
のどちらかを期待したいたのですが、駄目でした。
前者は特に不思議なのですが、つかわれ方が
Honya(&c);
というポインタ引き渡しの場合には警告にならないようなのです。
(Honya(const Hoge *p)なので、constであるから警告になってもよさそうなものですけど…)
この(くだらない)ミスを再発しないためには、何か良い方法はあるでしょうか?
というつかわれ方をしていたせいで、警告がでませんでした
■ このスレッドは過去ログ倉庫に格納されています