c++のグローバル変数の使い方とは?

このQ&Aのポイント
  • c++のグローバル変数の使い方を教えていただけないでしょうか。Visual Studio 2008を使用しております。
  • コンパイル(ビルド)ではエラーは出ないのですが、BBBをコールした時は変数AAAに値をセットできるのですが、abc::CCCをコールした時、AAAに値がセットできません。ウォッチ等も「エラー:識別子'AAA'はスコープ外です」となってしまいます。
  • BBBはリンクしているライブラリ(修正不可)からコールされる為、クラスに組み込む事が出来ません。
回答を見る
  • ベストアンサー

c++のグローバル変数

お世話になります c++のグローバル変数の使い方を教えていただけないでしょうか Visual Studio 2008を使用しております ------------abc.cpp------------- int AAA; BBB(){ AAA = 1; } abc::CCC(){ AAA = 2; } コンパイル(ビルド)ではエラーは出ないのですが、 BBBをコールした時は変数AAAに値をセットできるのですが、 abc::CCCをコールした時、AAAに値がセットできません、 ウォッチ等も「エラー:識別子'AAA'はスコープ外です」 となってしまいます。 補足 BBBはリンクしているライブラリ(修正不可)からコールされる為、 クラスに組み込む事が出来ません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.2

あなたのコードは不完全なため、ビルドできるように以下のように修正しましたが現象が再現しません。 int AAA; class abc { public: static void CCC(); }; void BBB(){ AAA = 1; } void abc::CCC(){ AAA = 2; } int main(int argc, char** argv) { BBB(); abc::CCC(); return 0; // ここにブレークポイントを設定して AAA の値を確認 } 多分あなたが提示されていないコード部分に原因があると思われます。

usami33
質問者

お礼

ありがとうございました。 正常に動作したのですね。 お手数をおかけしてすみませんでした。 他の部分をもう一度見直してみます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

せめて コンパイルできる例 を出してくれませんか?

関連するQ&A

  • cshで変数名の入れ子ができない

    こんなことをしたいと考えています。 --------------------- set aaa="bbb" set bbb="ccc" echo $aaa echo $bbb echo $($aaa) --------------------- 期待する実行結果としては、 --------------------- bbb ccc ccc --------------------- という感じです。 エラーになってしまうのですが、何かいい逃げ方はありませんか? cshでなくてshでも構いません。 よろしくお願いします。

  • bashなどのシェル変数の値に改行を含める事は可能でしょうか?

    タイトルの通りですが、通常のシェル変数の値として  [prompt]$ aaa="bbb<改行>ccc" のようなセットを行い、  [prompt]$ echo $aaa  bbb  ccc  [prompt]$ のような結果を得たいのですが、可能でしょうか。

  • Batにおける変数について

    はじめまして。 どなたかご教授願います。 @echo off set AAA=( +8000896 - +8000551 ) = 345 set BBB=28 set CCC1=%AAA:~28% #set CCC2=%AAA:~"%BBB%"% #行の部分の変数定義が行えません。 "や`、\を組み合わせてみましたが CCC1のような 結果にはならず悩んでおります。 お手数ですが、ご回答の程お願い致します。

  • PHPで変数から1行目だけを取得したい

    変数に格納されたデータの1行目のaaaだけを取り出す方法を教えてください。 ※データはWEBサイトのURLリストで常に変動します。 複数行のデータ(\n区切り) 例) aaa   bbb   ccc 又は1行の半角カンマや半角スペースなどの文字で区切られたデータ 例) aaa, bbb,ccc,    aaa bbb ccc 上記のどちらかの形式で変数$dataに格納が可能です。 この$dataに格納されたaaaだけを取得するにはどうしたらいいのでしょうか? PHP初心者のためプログラムソースを書いていただけると助かります。

    • ベストアンサー
    • PHP
  • PHPでテキストファイルを読み込み変数に代入する

    PHP超初心者ですみません。 aaa:111 bbb:222 ccc:333 444444 という内容のテキストファイルをPHPで読み込み aaa(変数名)=111(中身) bbb(変数名)=222(中身) ccc(変数名)=333\n444444(中身改行あり) という風にできないのでしょうか? いろいろ探しましたがわからなかったので よろしくお願い致します。

    • ベストアンサー
    • PHP
  • perl について

    http://AAA/BBB/???/CCC AAAとCCCは固定文字です。 BBBは変化します。 ///の数・順番も固定です。 この状態で、「???」を抜き出してZZZ変数に値を代入するにはどうすれば良いでしょうか? ZZZ=

    • ベストアンサー
    • Perl
  • 変数の参照方法

    どうしても思い出せないので教えて下さい。 var aaa="abc"; var bbb="aaa"; bbbを使ってaaaの内容を参照できたと思うのですがどうやれば良いのでしょうか? alert(bbb); 違いますよね。 bbbを使って、alert(???); 期待は "abc"。 宜しくお願い致します。

  • Pro*CでのSQL文について

    こんにちは。 Pro*CでSQLを実行しようとしています。 varchar table_data[200]; (略) EXEC SQL SELECT aaa, bbb, ccc INTO :table_data FROM SAMPLE (略) のようにしてSAMPLEテーブルの列(aaa,bbb,ccc)を変数table_dataに 格納したいと考えています。(もちろん、現在はtable_dataにはaaaの値しか 入っていません(泣)) こういった漢字で変数table_dataに選択列(複数)を取得できるような考えは あるのでしょうか? ちなみにaaa,bbb,cccの区切り文字は考えなくても構いません。 ご多忙でしょうが、どのたかご回答宜しくお願い致します。

  • C言語グローバル変数

    C言語で、 aaa.c にglobal変数 gTest[2]; を書いて、 別のbbbb.cからgTest[0]の値を参照するにはどうしたらよいでしょうか? aaa.cとbbb.cは異なる機能なので、 bbb.cからgTest[0] の値を直接編集させたくありません。 aaa.hに gTest[2];を書くしかないのでしょうか? aaa.hに gTest[0]の値を取得するマクロを定義してbbb.cにはそのマクロを使ってもらいたいのですが、可能でしょうか?

  • 多次元連想配列のキーを変数で指定できないでしょうか。

    いつもお世話になります。 $key='aaa'; $Ary["$key"]='xxxx'; は、できます。 ここで、 $Ary[aaa][bbb][ccc]='zzzzz'; と、したくかつ、キーを変数で指定したいのです。 そこで、 $key='[aaa][bbb][ccc]'; $Ary"$key"='zzzz'; ダメです。 $key='aaa][bbb][ccc'; $Ary["$key"]='zzzz'; これもダメです。 ここの例ですと、3次元ですが、次元数も不確定です。 方法はないものでしょうか。 なんとかよろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう