メンバ変数が途中から無効になってしまう

[戻る]
しっち 2001/11/28(水) 18:10:53
VC++6.0を使用しています。
あるクラスのヘッダで、異なるクラスのインスタンス(CString str;のような)を
メンバ変数として定義しています。
また、5つほどメンバ関数を定義しています。
どれらも"public"で定義しています。
その5つのメンバ関数のうち2つの関数ではメンバ変数を操作できるのですが、
他の3つのメンバ変数では有効でなくなります。
例えば、メンバ変数のあとに「.」(ピリオド)でそのメンバ変数がもつ関数がリストアップされますが、
2つの関数ではされるのですが他の3つの関数では何も起こりません。
また、型情報ヒントでは弾かれてしまい何も表示されません。
ビルドはエラー無く通ります。
情報をお持ちの方はよろしくお願いいたします。

toru [E-Mail] [HomePage] 2001/11/28(水) 18:39:28
よくわかりませんが、関数5つのうち3つでインテリセンスが効かないってことですか?

原因としては

関数の定義にマクロを使用している。
この場合は無理です。インテリセンスはマクロ展開前の情報を参照しますのでアウトです。

単純にインテリセンスが死んでいる。
この場合が多いと思います。VC++のインテリセンスはしょっちゅう死ぬんで
ビルドに問題が無いんだったら気にしないことが1番です。

しっち 2001/11/28(水) 20:48:29
情報ありがとうございます。

>単純にインテリセンスが死んでいる。
これは修正のしようはないのでしょうか?
実行させてみるとその部分が正常に働いていないようなのです。

プログラム自体は先人のものを引き継いで作っているのですが、
新たにメンバ変数を追加しても
その変数はすべて効かなくなっていまいます。
同じく、新たに関数を追加しても、
元からの変数、新しく追加した変数共に効きません。

toru [E-Mail] [HomePage] 2001/11/28(水) 21:37:29
> 実行させてみるとその部分が正常に働いていないようなのです。
それはどいうことですか?関数の呼び出し自体が失敗してるんですか?
それなら無視するというわけにはいきませんね。

デバッグで順番にステップインして調べてみるのが1番だと思いますよ。

しっち 2001/11/29(木) 14:19:48
インテリセンスが効いていない関数が呼び出されたときに
関数内でそのメンバ変数がもつメンバ関数を使っているのですが、
正常に値が返ってきていないようなのです。
それは他の効かない関数でもメンバ変数に正常に値が格納されていないなどです。

ありがとうございました。
なんとか頑張ってみます。

古いスレッドには追加発言できません。