• 締切済み

クラスのメンバになってくれません!

クラスに変数名・関数名を入れれば自動的にクラスのメンバとしてくれるはずですよね。だけど、クラスメンバにしてくれません。 なぜでしょうか? たすけてください!おねがいします!

みんなの回答

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.6

予想ですが、開発ツールのバグか、あるいは劣悪な仕様のいずれかだと思います。 ベンダに問い合わせした方がよいでしょう。

DirectX
質問者

お礼

もうあきらめます;;

DirectX
質問者

補足

メイン関数として定義したのが、どうやらグローバル変数とされて今っているようです。 staticをつけたコールバック関数が含まれています。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.5

今新しくプロジェクト(MFCを使用しないWindowsアプリケーション)を作成して、 適当にクラスを定義してやってみましたが、ツールチップでメンバー変数の名前やメンバー関数の名前がちゃんとでてきましたよ。 これまでは動いていたわけですから、何の条件もなしに他の人のところで再現するとも思えないのですが… #4さんのいう.pdbファイルはプロジェクトのディレクトリと同じレベルにありますね。  sample ← プロジェクト本体のあるディレクトリ  sample.pdb  sample.sln ← ソリューションファイル

DirectX
質問者

お礼

もうあきらめます;;

DirectX
質問者

補足

問題を発見したプロジェクト内にある、別のクラスで新たにメンバ関数を加えてみました。 その結果正常にメンバ関数として認識してくれました。 ということは、問題のクラスが書いてあるソースに問題があるようです。 ソースコードがどういった場合にこのような事が起きるのでしょうか?

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.4

クラスの情報を別途保存しているデータベースが破損しているとか? > this->メンバ変数 としますと、エラーがでます。 VCのアプリケーションのエラーなのか?コンパイルのエラーなのか?エラーメッセージは何なのか? > VCの雛形でも同じ症状がでるのですから。 新規にプロジェクトを作成した場合は? うろ覚えですが、VC++6.0の場合ですと、.ncbのファイルともう一つ.pdbのファイルを削除とかで再作成されたような? 削除するとアレですから、タイムスタンプの新しいそれらしいファイルを移動してみるとか。

DirectX
質問者

お礼

もうあきらめます;;

DirectX
質問者

補足

新たに雛形を作成して試してみた結果問題は症状は発生しませんでした。

  • haratom
  • ベストアンサー率36% (15/41)
回答No.3

開発環境はどういったものをお使いでしょうか? 「自動的」というのは、開発環境が自動的にメンバをリストに表示する、といったような意味ですか?

DirectX
質問者

お礼

もうあきらめます;;

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

症状の再現できるソースコードを補足して下さい。 あと、試したこと、こうなるはずだが、結果がこのようになる のように説明を補足して下さい。

DirectX
質問者

お礼

もうあきらめます;;

DirectX
質問者

補足

どのプロジェクトも同じ症状がでますので、 ソースコードは関係ないと思います。 VCの雛形でも同じ症状がでるのですから。

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

どのようにクラスを定義して、どのような動作をしているのかといった 情報は出せませんか? コンパイルエラーが出るとか、特定のメンバーにアクセスできないとか。 「クラスメンバにしてくれません」だけではなんとも判断できません。

DirectX
質問者

お礼

もうあきらめます;;

DirectX
質問者

補足

VC++ 2003.NET を使用しています。 数日まえから一つのオブジェクトを制作していました。 そして現在までメンバ変数が3つ、メンバ関数4と順調につくれていたのですが… 本日クラスの定義がしてあるヘッダファイルにメンバ変数・関数を新たに加えても、 クラスのメンバとして認識してくれなくなったのです。 仮に新たにメンバ関数を加えたとしてソースファイルにメンバ変数をいれてもローカルと認識してしまい、メンバ変数が使えません。 メンバ関数にカーソルを当てても普段は 「引数の型 クラス名::メンバ関数名(引数・・・・)」 と表示されるのですが、今回は、 「int 関数名」 と表示されるのです。 this->メンバ変数 としますと、エラーがでます。 試しに別のプロジェクトでもメンバ関数を加えてみましたが、 同じようにメンバ関数として認識してくれませんでした。 解決方法を探っていますが、このようなおかしな現象は ぜんぜん解決方法がみつかりません。 ですので、私よりVCを使っていらっしゃる皆さんに助けを求めています。 どうかお願いします。

関連するQ&A

  • クラス内のメンバ変数について

    クラス内のメンバ変数について Javaで作成したクラスのメンバ変数なのですが、クラス内のメンバ変数名の 一覧を取得する方法を探しています。 昔、仕事でやったような気がするのですが、忘れていました。 やりたいことは、メンバ変数のString型のメンバにtrimを行いたいのですが、 一つずつ名称を指定したくなく、どのクラスでも共通処理を行いたいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • クラスのメンバー変数の書き方。

    クラスのメンバー変数の書き方。 クラスのメンバー変数を書くとき、以下の3つはどちらでも同じ動作をします。 ◆privateの場合、privateを明示的に書く or 書かない ◆null初期化の場合、= nullを明示的に書く or 書かない ◆メンバー変数名に接頭辞(mTextなど)をつける or つけない チームなどで書き方をどちらかに統一するとすれば、どちらに統一するのがいいと思いますか。 理由も含めて教えて下さい。 明示的に書くとJavaに不慣れな人にも分かりやすくて良いと思います。 書かないとタイプ数が減ってコーディングが若干楽です。 接頭辞はthisを書かなくていいのが楽なのですが、なんだか気持ち悪いです。 気持ち悪いのですが、デメリットは明確に説明できません。

    • ベストアンサー
    • Java
  • クラス メンバ関数インライン化

    クラス内でメンバ関数を定義するとインライン関数になると書いてあったのですが、全てクラス内でメンバ関数を定義してはだめなのでしょうか?   クラス外でメンバ関数を定義するメリットを教えてください。 教えてくださいm(_ _ )m

  • クラス型のメンバ変数について

    クラス型のメンバ変数って、どういったメリットがあるのでしょうか? 以下のプログラムは疑問点の部分だけ書いたプログラムです。 class Caaa { (内容) }; class Cbbb { protected: Caaa m_bbb; } 上のプログラムの、 Caaa m_bbb; の部分が、どういった意味(使い道)があるのかわかりません。 int型やvoid型のメンバ変数は分かるのですが、他のクラスの型をもったメンバ変数はどういった意味があるのでしょうか。 どなたが教えてください。

  • クラスのメンバ関数が多すぎる場合のデメリットはありますか?

    クラスのメンバ関数が多すぎる場合のデメリットはありますか? C++ であるクラスを実装してメンバ関数の追加を続けていたところ、メンバ関数の数が数十にまでふくれあがってしまいました。 このようにクラスのメンバ関数の数が多くなってしまった場合、パフォーマンス上でデメリットがありますでしょうか。 私としては、メンバ関数分だけメモリを食う、クラスのコピーが遅くなる、といいた点で心配なのですが実際のところどうなのでしょうか? (メンバ関数は、基本的にはクラスのメンバを操作するものなので、グローバル関数ではなくてクラスのメンバにしておいたほうが分かりやすいかなと思っています。)

  • 「クラス関数」「メンバ関数」「メソッド」の違いを教えてください。

    「クラス関数」「メンバ関数」「メソッド」の違いを教えてください。 あるサイトに、「クラス関数」=「メンバ関数」と書かれていました。 「メンバ関数」=「メソッド」だと思っているのですが、 そうすると、「クラス関数」=「メンバ関数」=「メソッド」という認識で間違いないでしょうか?

    • ベストアンサー
    • PHP
  • 「引数の書き方」と「メンバ変数とメンバ関数の名前」について、教えてくだ

    「引数の書き方」と「メンバ変数とメンバ関数の名前」について、教えてください。 クラス内のコード抜粋なのですが、下記はどういう意味なのでしょうか? ▼メンバ変数 var $j = true; ▼メンバ関数 function j($p = false){ if($p) $this->j = false; return $this->j; } $this->j(true); 分からないこと ・コードの意味全般 ・($p = false)と書かれている引数の意味 ・メンバ変数とメンバ関数の名前は同じでもよいか? 

    • ベストアンサー
    • PHP
  • クラス内のメンバ関数から他クラスのメンバ関数を利用

    PHP 5.3.8で、 MySQLデータベースに関する処理をする Database クラスと、ファイルのアップロード処理をする FileUpload クラスがあったとして、ファイルのアップロードが完了したら、そのファイル名をデータベースに書き込む処理をしたいと思っています。 思いつく方法としては、FileUpload クラスの関数内で逐一Databaseクラスをインスタンス化するか、予めインスタンス化したものをグローバル変数として利用するか、Databaseに対するサブクラスとしてFileUploadをextendsするなどがあるとは思いますが、どういうやり方をすれば綺麗にまとまるのか教えて下さい。 あまりクラスに関する知識がないので一般的にどうするかがよくわかっていない状態です。

    • ベストアンサー
    • PHP
  • 基本クラスのポインタで、派生クラスのメンバ関数を呼び出す方法?

    VC++でプログラミングをしています。 A(基本クラス) B(派生クラス) を作成しました。Bは、Aの特別な場合です。 このとき、基本クラスAのポインタから、派生クラスBにのみあるメンバ関数を呼ぶことはできないのでしょうか? 基本クラスAにも同じ名前の関数があれば、仮想関数をオーバーロードすれば呼び出せるようですが、この関数は、基本クラスには不要なので、できれば使わないメンバ関数を基本クラスに書きたくありません。 (純粋仮想関数という方法もあるようですが、) 操作としましては、 Aのポインタ配列 A* a[100]を作成し 特別な場合のみ派生クラスBのメンバ関数だけを実行させたいのです。 派生クラスにのみあるメンバ関数を、Readとします。 for(i=0;i<100;i++){ if(派生クラスBの場合){ a[i]->Read() } } 現状では、コンパイルエラーで、 関数Readは、aのメンバ関数ではありませんとなってしまいます。 以上よろしくお願いします。

  • クラスの継承でメンバ変数が・・

    初めてクラスの継承をしている者です。 親クラスA のメンバ変数らを 親クラスAからの処理で呼び出した 子クラスB で変更したいのですが、 子クラスB内ではちゃんと処理で数値が変化するのですが、 親クラスAに戻ると数値が全て初期値に戻ってしまいます。 継承方法は単に public 親クラスA と記述しているだけで、 親クラスAと子クラスBは別々のファイルに1クラスずつで記述しています。 コンパイルは警告もエラーも出ず動きます。 子クラスから親クラスのメンバ変数を変更するにはどうすれば良いのでしょうか?

専門家に質問してみよう