問題CPP00100の解答例と解説 C++ Lv.1

関数の基本(15分)



<解答例 1>
F11キーでフルスクリーンモード、Escキーで元に戻ります。

これは問題文にある解答そのままだよ。関数 OutputGreeting は、4行目から7行目にかけて定義されていてるね。こうして関数を定義すれば、そこから下(つまり8行目以降)で、この関数を何度でも繰り返し呼び出すことができるんだ。

同じように Function という関数が9行目から13行目で定義されていて、その中で OutputGreeting 関数を2回呼び出しているよね。関数を定義しておけば、同じプログラムを繰り返し書かなくても良くなるんだ。

ちなみに関数 Function は、main 関数という実行ファイルの一番最初に呼び出される関数から呼び出しているんだ。コードレジュメでは main 関数は表に出てこないようにしているけれど。




<解答例 2> 不正解
F11キーでフルスクリーンモード、Escキーで元に戻ります。

関数の順番を変えてしまうと、コンパイルエラーになってしまうよ。コンパイラは、ソースコードの上から見ていくことしかできないから、6行目のところを読んだ時に、「OutputGreetingなんて関数知らないよ」ということになってしまうんだ。解答例1のようにしておけば、先にOutputGreeting の定義を読んだ後に 関数 Function のところを読むから、もう知っている状態になるんだね。




<解答例 3>
F11キーでフルスクリーンモード、Escキーで元に戻ります。

けれども解答例3の5行目のように関数の宣言だけをしておくと、今度はこれでコンパイルができるようになるよ。関数の宣言は、{}の部分を書かずに、;(セミコロン)に置き換えればいいんだ。

こうしておけばコンパイラは、5行目のところで「OutputGreeging という関数があるんだな(中身は知らないけど)」という状態になって、9行目と10行目のところに来ても困らないんだ。それであとでOutputGreeging 関数の中身を定義しておけば、コンパイラはあとで関数を呼び出しているところと関数の定義を関連づけてくれるんだ。





初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録



ログイン
メールアドレス:

パスワード:



パスワード紛失

新規登録