タイトルの内容の質問です。
現在短めのRPGを作成しています。主人公のパラメータなどを構造体で管理しようと考えているため、ファイルを分割したときに、複数のソースファイルから一つの構造体でやり取りできるようにしたいと考えているのですがどうにもうまくいきません。
そこで、皆様の知恵をお借りしたいです。皆様はどういった方法でデータを扱っているのでしょうか?
また、複数のソースファイルから同一の構造体にアクセスすることは可能でしょうか?
ファイル分割と構造体
Re: ファイル分割と構造体
何をしたときにどううまくいかないのかが全くわかりませんので、お答えのしようがありません。あらい16 さんが書きました: ファイルを分割したときに、複数のソースファイルから一つの構造体でやり取りできるようにしたいと考えているのですがどうにもうまくいきません。
せめて、ソースコードやエラーメッセージを開示してはいただけないでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: ファイル分割と構造体
[quote="box" id=3,19572,147846
何をしたときにどううまくいかないのかが全くわかりませんので、お答えのしようがありません。[/quote]
そうでした、申し訳ありません。
<saveData.h> → 引数の構造体にdatファイルから読み込んだデータを代入する関数宣言
<saveData.cpp> → 上記の関数定義
<main.cpp> → saveData.hをinclude、構造体を定義、上記の関数呼び出し
としています。が、saveDataの.h .cppともに構造体が定義されていませんとエラーが出ます。
この場合は構造体を定義するファイルを作り、全ソースファイルでincludeしたほうがいいのでしょうか?
何をしたときにどううまくいかないのかが全くわかりませんので、お答えのしようがありません。[/quote]
そうでした、申し訳ありません。
<saveData.h> → 引数の構造体にdatファイルから読み込んだデータを代入する関数宣言
<saveData.cpp> → 上記の関数定義
<main.cpp> → saveData.hをinclude、構造体を定義、上記の関数呼び出し
としています。が、saveDataの.h .cppともに構造体が定義されていませんとエラーが出ます。
この場合は構造体を定義するファイルを作り、全ソースファイルでincludeしたほうがいいのでしょうか?
Re: ファイル分割と構造体
構造体を<saveData.h>で定義し、<saveData.cpp>とmainの両方でincludeすればいいのでは?
Re: ファイル分割と構造体
構造体の用途次第でしょうけど,DataのSaveにだけ使うので無いならば,その構造体をsaveData.hで定義するのは違う感.
「その構造体の定義が書かれたヘッダ」を用意し,それをmainとsaveData.cppの双方でincludeする.
(saveData.hではinclude不要,もしくは前方宣言で済むように思う.)
「その構造体の定義が書かれたヘッダ」を用意し,それをmainとsaveData.cppの双方でincludeする.
(saveData.hではinclude不要,もしくは前方宣言で済むように思う.)
Re: ファイル分割と構造体
すいません、ここに来てincludeの質問なのですが、インクルードガードを書いた場合二度目のincludeはスキップされますよね?usao さんが書きました: 「その構造体の定義が書かれたヘッダ」を用意し,それをmainとsaveData.cppの双方でincludeする.
(saveData.hではinclude不要,もしくは前方宣言で済むように思う.)
そこで、上記のように2つのソースファイルでincludeした場合の処理はどうなるのでしょうか?スキップされないのですか?
Re: ファイル分割と構造体
「同じ」ソースファイルでは2回読み込まれないだけなので2つの(別の)ソースファイルであればいくらでもincludeできます。あらい16 さんが書きました: すいません、ここに来てincludeの質問なのですが、インクルードガードを書いた場合二度目のincludeはスキップされますよね?
そこで、上記のように2つのソースファイルでincludeした場合の処理はどうなるのでしょうか?スキップされないのですか?
Re: ファイル分割と構造体
なるほど、そういう処理を行ってたのですね。にこよん さんが書きました: 「同じ」ソースファイルでは2回読み込まれないだけなので2つの(別の)ソースファイルであればいくらでもincludeできます。
どうやら意味を履き違えていたみたいです。助言を参考にひとまずは組んでみます。