構造体の宣言等について

解決


素人  2009-06-30 19:39:33  No: 70477

毎度おせわになります。構造体について色々お聞きしたいことがあります。

NoticeListDlg.cpp,NoticeListDlg.hとNoticeDetailsDlg.cpp,NoticeDetailsDlg.hというファイルがあり、NoticeListDlg.cppでは、xmlを読み込んでそれを表示したりする処理があるとします。ダイアログ上の次へボタンを押すと、NoticeDetailsDlg.cppに遷移して、そこでまた色々処理をするのですが、NoticeListDlg.cppでxmlから読み込んだデータをNoticeListDlg.hで定義した構造体に持たせておいて、それをNoticeListDlg.cppでも使いたいと思っています。

構造体の中身を

typedef struct _NOTICE_INFO {
  CString csParticiUserId;
  CString csNoticeTitle;
  CString csNoticeText;
} NOTICE_INFO , *LPNOTICE_INFO;

と定義するとして、NoticeListDlg.cppで使うには、どういった書き方をすればいいのでしょうか?

構造体について色々調べて見たのですが、いまいち理解できずでした・・・・・><

サンプルなどを提示していただけるとすごくありがたいです。

環境は、visual studio2005 VC++(MFC) vistaです。
宜しくお願い致します。


επιστημη  URL  2009-06-30 20:18:16  No: 70478

よくわかんないんだけど、
XMLから読んだ値をNOTICE_INFOに詰め込んで、
たとえばNoticeListDlgのコンストラクタに渡せばいぃんじゃないかしら。

たとえば、ですよ。
要は「XMLに基づいた値をNOTICE_INFOの介してなんらかのクラスに渡したい」てことかと。
ならばコンストラクタでもメンバ関数でも、引数で与えてやればいい。


素人  2009-06-30 20:35:05  No: 70479

επιστημηさん、さっそくのコメントありがとうございます。

>「XMLに基づいた値をNOTICE_INFOの介してなんらかのクラスに渡したい」

そうです。まさにそれをやりたいんですが、これは別に構造体を使わなくても実現できるのでしょうか?

>コンストラクタでもメンバ関数でも、引数で与えてやればいい

とは、どういう風に書けばいいのでしょうか?聞いてばかりで申し訳ないのですが、宜しくお願い致します。


επιστημη  URL  2009-06-30 20:42:27  No: 70480

> どういう風に書けばいいのでしょうか?
なにがわからんのかわからんです。

#include <string>
#include <iostream>

using namespace std;

struct Package {
  string item;
  int    quantity;
};

class Person {
  Package pkg;
  string name;
public:
  Person(string n, Package p) : name(n), pkg(p) {}
  void print() const {
    cout << name << " は " << pkg.item << " を " 
         << pkg.quantity << " 個もってます" << endl;
  }
};

int main() {
  Package p; p.item = "りんご"; p.quantity = 5;
  Person taro("太郎", p);
  taro.print();
}


素人  2009-07-01 02:07:31  No: 70481

επιστημηさん、お世話になります。

サンプル提示ありがとうございます。とても参考になりました。

今後も宜しくお願い致します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加