- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:構造体を引数とする、クラス間のデータの受渡し方法について)
構造体を引数とする、クラス間のデータの受渡し方法について
このQ&Aのポイント
- 構造体を引数としてクラス間のデータを受け渡す方法について質問があります。
- メンバ変数を一つずつ引数として渡せば正しく更新できますが、構造体を引数として渡すとコンパイルエラーになります。
- どのように定義すればよいかご教示ください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
CMain,CSub共通の構造体宣言が必要なら 構造体をグローバルに定義する方法が一般的かと思います CMain,CSubで共通のヘッダーを用意してそこに構造体を定義しましょう --- Common.H typedef struct CommonCHAR { int m_chx; int m_chy; bool m_chValidFlag; }COMMONCHAR, *LPCOMMONCHAR; としておいて CMain_Class.HやCSub_Class.Hから構造体の定義をはずします 各ヘッダの冒頭で #include "Common.h" を記述します CMain,CSubの変数宣言または仮引数宣言を CommonCHARで記述しましょう
その他の回答 (1)
- arain
- ベストアンサー率27% (292/1049)
回答No.2
おそらくエラーが出ている部分はここ >cs->Sub_FuncCall4( pc ); 肝心の「Sub_FuncCall4」についての宣言がないけど、 「CSub::Sub_FuncCall( CHAR_S *pc )」と同様であれば、 「CSubのCHAR_S型」に対して、「CMainのCHAR1型」を渡そうとしていのだから、 質問に書かれている「型が一致しない」エラーが出て当然。
質問者
補足
回答ありがとうございます。 >cs->Sub_FuncCall4( pc ); このSub_FuncCall4( pc );は、Sub_FuncCall( pc );の誤りです。 質問事項を、記載する時に誤ってしまいました。 失礼いたしました。
お礼
アドバイス通り、構造体をグローバルに定義することにより、コンパイルが正しく行われ、構造体及び、動的構造体についても、問題を解決する事が出来ました。 今後、不明な点がありましたら質問させて頂きたいと思いますので、その時はアドバイス宜しくお願い致します。 ありがとうございました。
補足
回答ありがとうございます。 同じ構造体を二度定義するよりも、共通で一度定義する方が論理的ですよね。 早速、プログラムを書き直してみます。 結果につきましては、後日報告させて頂きます。