構造体の配列にデータを格納するには?


C++初心者  2006-01-29 09:03:09  No: 60591  IP: 192.*.*.*

はじめまして。C++初心者といいます。
構造体の配列にデータを格納したいのですが、データが格納されません。以下にソースの一部を記しますが、すべての変数にデータが格納されません。
[cppファイル]
void InfoMgr::setInfo()
{
    strInfo[0].sAction = "TEST";
    strInfo[1].sAction = "TEST";
    strInfo[2].sAction = "TEST";
    strInfo[3].sAction = "TEST";
    strInfo[4].sAction = "TEST";
    strInfo[5].sAction = "TEST";
    strInfo[6].sAction = "TEST";
    strInfo[7].sAction = "TEST";
}

[hファイル]
typedef struct {
    CString  sAction;
}struct_INFO;

class InfoMgr
{
public:
    struct_INFO strInfo[8];
    void  setInfo();
};

以上になります。普通なら格納されて当たり前なのですが、原因がわかりません。どなたか教えてくれませんでしょうか?

[開発環境]
Windows XP
Visual Stadio .Net  C++
プロジェクトは「Win32コンソール」

よろしくお願いいたします。

編集 削除
επιστημη  2006-01-29 09:10:10  No: 60592  IP: 192.*.*.*

↓ちゃんと動いてますケド…

#include <iostream>
#include <afxwin.h>

typedef struct {
    CString    sAction;
}struct_INFO;

class InfoMgr
{
public:
 struct_INFO strInfo[8];
 void setInfo();
};

void InfoMgr::setInfo()
{
    strInfo[0].sAction = "TEST";
    strInfo[1].sAction = "TEST";
    strInfo[2].sAction = "TEST";
    strInfo[3].sAction = "TEST";
    strInfo[4].sAction = "TEST";
    strInfo[5].sAction = "TEST";
    strInfo[6].sAction = "TEST";
    strInfo[7].sAction = "TEST";
}

int main() {
  InfoMgr mgr;
  mgr.setInfo();
  for ( int i = 0; i < 8; ++i ) {
    std::cout << static_cast<const char*>(mgr.strInfo[i].sAction) << std::endl;
  }
  return 0;
}

編集 削除
でんどろかかりあ  2006-01-29 20:18:03  No: 60593  IP: 192.*.*.*

構造体とクラスを混同しています。

こうするなら、構造体のことを頭から抜いて、MFC&クラス一本でいったほうがいいと思います。
最初のうちは、構造体とMFCの違いは、structと書くか、classと書くか、だけだと割り切っていいです。

書き込みも読み出しもちょ〜〜〜早いですよ。

くぐったら、

http://homepage3.nifty.com/mitui707/VisualC/VCmakeclass.html/

というのがありました。

編集 削除
でんどろかかりあ  2006-01-29 20:22:48  No: 60594  IP: 192.*.*.*

謝謝。
ヨッパで、意味不明でした。

*********************************************

最初のうちは、構造体とクラスの違いは、structと書くか、classと書くか、だけだと割り切っていいです。

そのまま簡単にファイルに書き込めるし、書き込みも読み出しもちょ〜〜〜早いですよ。

編集 削除
επιστημη  2006-01-29 21:47:19  No: 60595  IP: 192.*.*.*

…やっぱり意味不明なんですけど。

> そのまま簡単にファイルに書き込めるし、書き込みも読み出しもちょ〜〜〜早いですよ。

なにが? struct と class が同じものならどっちが速いも遅いもないだろに。

編集 削除
Ryo  2006-01-30 03:04:28  No: 60596  IP: 192.*.*.*

私にゃ、質問者がクラスと構造体を混同してないように見えるがなぁ

んで
>普通なら格納されて当たり前なのですが、原因がわかりません。どなたか教えてくれませんでしょうか?
格納されてないと判断したのはどういった状況で?

どこかでブレイクして確認したのなら、その確認位置とか。
その位置までにsetInfo()はちゃんと呼び出しているのかどうかとか。

編集 削除
KING・王  2006-01-30 12:57:09  No: 60597  IP: 192.*.*.*

setInfo()をコンストラクタと勘違いしているのではないでしょうか?
で、InfoMgrのインスタンスを作成したが、setInfo()が呼ばれていないので、
作成したインスタンスの内容をウォッチしても、値が設定されていないとか。

編集 削除
επιστημη  2006-01-30 15:13:06  No: 60598  IP: 192.*.*.*

だとするとナンセンス・コールっすね。
電気屋に出張修理頼んだら差込が抜けてた、みたいな。

編集 削除