グローバル変数を使用するには? – プログラミング – Home

グローバル変数を使用するには?
 
通知
すべてクリア

[解決済] グローバル変数を使用するには?


よこ
 よこ
(@よこ)
ゲスト
結合: 25年前
投稿: 9
Topic starter  

こんばんわ、毎度お世話になってばかりのよこです。

突然なのですが、また判らないところで止まってしまいました。
グローバル変数の使用方法なのですが、クラス間での変数の共有の仕方がわかりません。

1つのクラスの中では変数の値は正常に受け渡しされているのですが、他のクラスでその変数を使用するとエラーになってしまいます。
なにか、クラス間で変数をグローバルにするためには何かの宣言が必要なのでしょうか?

どうぞ、よろしくお願いします。


引用未解決
トピックタグ
マモー
 マモー
(@マモー)
ゲスト
結合: 25年前
投稿: 3
 

はじめましてです。マモーです。

グローバル変数なのか、クラス内のメンバ変数を
複数のクラス内で使用したいのかわかりません。

単純にグローバル変数を使用したいのであれば
クラス外に宣言して、他のファイルでは、extern するだけでは?

またグローバルに変数を使いたいのであれば、
アプリケーションクラス、ドキュメントクラスのメンバ変数
にするのが簡単だと思いますが...


返信引用
よこ
 よこ
(@よこ)
ゲスト
結合: 25年前
投稿: 9
Topic starter  

すいません、質問が悪かったんですね。
説明不足でした…

単に、行いたい処理と言うのが、複数のクラス内で、変数の値を呼び出したり
書き込みが行いたい。
そのための宣言の方法や、変数の指定などの方法が知りたかったのです。

変数の種類と言うのはあまりこだわっていなかったのですが、イマイチやり方がわからないので
質問までうやむやになってしまいました。
とりあえず、メンバ変数は使っていません。
public:の下に変数を宣言したのですが、他のクラスでの値の出し方がうまくいきませんでした。

もういちど同じ質問なんですが、教えてもらえませんか?
できるだけ、具体的に教えてもらえると、ほぼ初心者の私には理解しやすいので…

よろしくお願いします。


返信引用
マモー
 マモー
(@マモー)
ゲスト
結合: 25年前
投稿: 3
 

↓のでどうでしょう。クラスAのメンバ変数をクラスBから使用するサンプルです。

class A
{
public:
int test;
}

class B
{
public;
void func();
}

B::func()
{
// クラスAのオブジェクトを宣言
A aObject;
// クラスAのメンバ変数にアクセス
A.test = 5;
}


返信引用
マモー
 マモー
(@マモー)
ゲスト
結合: 25年前
投稿: 3
 

まちがえた。
// クラスAのメンバ変数にアクセス
A.test = 5;

// クラスAのメンバ変数にアクセス
aObject.test = 5;
でした。


返信引用
よこ
 よこ
(@よこ)
ゲスト
結合: 25年前
投稿: 9
Topic starter  

すごくわかりやすい回答ありがとうございます!!
これで理解できました。

2度も質問してしまって、面倒かけてすいませんでした。
さすがに、これだけ書いてもらえると、すぐに使える状態まで持って来れました。
参考書などでも探したのですが、基本的な問題すぎて私の参考にしてる本には
ほとんど載っていなかったのです…
皆さん参考書はどのようなものを選んでいるんですかね?

ありがとうございました。


返信引用
EMI
 EMI
(@EMI)
ゲスト
結合: 25年前
投稿: 5
 

こっちの方がいいと思いますが。

class A
{
int test;
friend class B;
};

class B
{
public:
void func();
};

B::func()
{
// クラスAのオブジェクトを宣言
A aObject;
// クラスAのメンバ変数にアクセス
A.test = 5;
}

どんな理由があっても、クラスのメンバ変数をpublicにするのはあまり感心できませんね。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました