ページ 11

13章について

Posted: 2010年1月05日(火) 21:29
by へたれ
現在、龍神録プログラミングの館のプログラムをそのまま書き込んでいるのですが
13章の敵にショットを撃たせてみようで
shot.cpp(31) : error C3861: 'shot_calc': 識別子が見つかりませんでした
となり、このエラーが解消できません
何が原因なのかがわかりません
コードにうち間違いは無いと思うのですが、原因がわかる方はいらっしゃいますか?


環境は
Visual C++ 2008
XP
です

あと13章に
--- shotH.cpp に以下を追加 ---
という同じコードと思われるもの?が2つあるのですが、何か意味はあるのですか?
2つ書きこむとエラーがでるので1つ消しましたが、よかったのでしょうか?

Re:13章について

Posted: 2010年1月06日(水) 00:21
by wing
void shot_main(){
......
}
の下に
void shot_calc(int n){
.....
}
を書いていませんか?
上に書けばOKです。

Re:13章について

Posted: 2010年1月06日(水) 01:06
by へたれ
void shot_main(){
......
}

void shot_calc(int n){
.....
}
の順番を入れ替えたら動作しました

どうもありがとうございました

習うより慣れろという考えかたでプログラム勉強し始めましたが
やはり、基礎はしっかり覚えた方がいいのでしょうか?
いちようやさしいC++を読んだのですがいまいちピントこないんで…

質問ばかりですいません

Re:13章について

Posted: 2010年1月06日(水) 10:04
by wing
今回の問題点は、プログラムは上から下へ順番に実行されるということです。
void shot_main()の中でshot_calc()が呼ばれても、まだ定義されていないので
分かりません、というエラーです。

順番を入れ替える以外にも解決する方法はありました。
shot.cppの上のほうにvoid shot_calc(int n);と宣言すればOKです。
でも龍神録の場合は、function.hにGLOBAL void shot_calc(int n);と書くのがいいですね。
しかし、今回の場合は入れ替えるのが一番いい方法です。

こういうことはエラーをしながら覚えてゆけば良いんじゃないでしょうか。
多少理解できないことがあっても先へ進んでいくうちに分かってくることもあります。

分からないことは質問してください。
龍神録プログラミングの館にお世話になった人は、親切に教えてくれますよ。