久しぶりにC++をやっていて、大事なことを忘れていました。
以下のソースはコンパイルエラーとなります。
#include <iostream> using namespace std; int main() { cout << "半径10の円の面積:" << getCircleArea(10) << endl; return 0; } // コンパイルエラー double getCircleArea(double r) { return r * r * 3.14; }
原因は宣言順序の問題です。
getCircleAreaメソッドが宣言される前に呼び出されているため、コンパイルエラーです。
C++より後に出てきた言語では、そういうことを気にしないで済むので忘れがちです。
ただ、これを防ぐ方法もあって、プロトタイプ宣言をしていれば防ぐことが出来ます。
#include <iostream> using namespace std; //プロトタイプ宣言 double getCircleArea(double r); int main() { cout << "半径10の円の面積:" << getCircleArea(10) << endl; return 0; } double getCircleArea(double r) { return r * r * 3.14; }