みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

要素数がプログラム内で変化する配列のクラス間のやりとり

随分初歩的な質問をしているとは思うのですが、解決方法がみつからないので質問をお願いします。

C++で配列をクラスから呼び出すときに、そのクラスの要素数がプログラム内で変化する場合、
どのようにするのが良いのでしょうか?

Class class_A
{
private:
プログラム内で要素数が変化する配列

public:
get_hairetu(){return 上の配列}
}

Class class_A::openfile
{
テキストからデータ読み込み
データ数に応じて配列の大きさが変化
}

int main(void)
{
class_A A;
配列=A.get_hairetu();
↑ここでclass_Aで決定した配列の要素数に応じて配列の要素数を変化させたいです
}

なるべくリストではなく配列で作成したいのですが、配列を全クラスで共有する方法があればそちらをお願いします。
(class_Aとmainはそれぞれ別のcppファイルに記述しています)

vector型で配列を作ることも考えたのですが、VC++ではなぜか使えませんでした。

質問内容が曖昧で申し訳ありませんが、ぜひ回答をお願いします。

投稿日時 - 2008-06-27 22:01:03

QNo.4134141

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>配列を全クラスで共有する方法
MFC使いならCArray(またはその派生クラス)をグローバル変数にして使用する。


vector型は #include "vector" で使えると思います。
拡張子.hはないので注意してください。


蛇足ですが
get_hairetu()の考え方では配列をprivateで宣言する意味がありません。
[配列の数を返す][n番目の値を返す]などのpublic関数を作るべきです。

投稿日時 - 2008-06-27 23:36:41

ANo.1

>vector型で配列を作ることも考えたのですが、VC++ではなぜか使えませんでした。
そうです。std::vector を使用するのが普通です。使えないはずはありません。

投稿日時 - 2008-06-27 22:10:20

あなたにオススメの質問