ユニで「プログラミングの基礎」の講義を受けたばかりで、関数を使用/宣言するための規則はmain()
、プログラムの先頭に関数を配置し、その下に関数/プロシージャを配置し、コンパイラエラーを防ぐために前方宣言を使用することであると言われました。
ただし、私は常に他の方法でそれを行ってきました-関数を一番上main()
に配置し、前方宣言を使用せず、それ以外の方法で見たことはないと思います。
どっちが正しい?それとも個人的な好みの問題ですか?いくつかの説明をいただければ幸いです。
ユニで「プログラミングの基礎」の講義を受けたばかりで、関数を使用/宣言するための規則はmain()
、プログラムの先頭に関数を配置し、その下に関数/プロシージャを配置し、コンパイラエラーを防ぐために前方宣言を使用することであると言われました。
ただし、私は常に他の方法でそれを行ってきました-関数を一番上main()
に配置し、前方宣言を使用せず、それ以外の方法で見たことはないと思います。
どっちが正しい?それとも個人的な好みの問題ですか?いくつかの説明をいただければ幸いです。
それはあなた次第です。個人的には、main
私が他の関数を持っているときは、1 つまたは 2 つの他の小さな関数またはコード スニペットのいずれかであるため、底をつき続けています。
実際のコードでは、うまくいけばプロジェクトを分割し (ファイル内に複数の「関連のない」関数を含めるのは良くありません)、ファイル内main
ではほぼ単独である可能性があります。物事を進めて使用するために必要な#include
ものだけです。main
関数が互いに関連している場合があります。前方宣言なしで単純にそれらを上に書く場合はmain()
、それらが依存する関数を知ることができるようにそれらを注文する必要があります。場合によっては (循環参照)、前方宣言なしでコンパイルすることさえできません。
関数を前方宣言する場合、この問題は発生しません。
さらに、main()
最初の関数として持つと、より読みやすいコードが生成されますが、それはおそらく個人的な好みにすぎません。
また、別のコーダーがファイル内で見つける関数について概要を説明しているため、読みやすくなっている可能性もあります。
ほとんどのプロのC++開発者が使用する標準はこれです。
小規模な家庭や学校のプロジェクトで作業する場合は、複数のクラスまたはプログラム全体を1つのファイルにまとめてもかまいません。規模が小さいため、クラスや関数の順序は重要ではありません。あなたはあなたにとってより便利なことをすることができます。しかし、教授が学生に宿題の特定のコード基準に従うように要求する場合(たとえば、main()を最初に置く)、それらの基準に従う必要があります。
標準がある場合は、含まれている .h ファイルに関数宣言を含めることです。そうすれば、ファイル内の関数の順序は関係ありません。私は宣言なしで関数を書くことはほとんどありません。
このアプローチは、教授に好まれている可能性が高く、慣習として教えている理由である可能性が最も高い. ここには 2 つのオプションがあります。流れに沿って進む (つまり、教授が「慣例」に従っていないと感じているため、混乱させたり、評価を下げたりしないでください)、または彼女に説明します - する必要はありません。コードの意図が明確である限り、この方法 (またはその他の方法) で実行してください。
宣言 (関数プロトタイプ) を持つというアドバイスは、C++ よりも C に関連しています。C++ には暗黙的な関数宣言がないため、使用前に常に宣言する必要があります。したがって、複数の関数を含む再帰がある場合、定義ではない関数宣言が少なくとも 1 つ確実に存在します。
小規模なプロジェクトの場合は、好きなスタイルを使用しますが、一貫性を保ちます。大規模なプロジェクトの場合、おそらくいくつかの .cpp ファイルが必要になり、ヘッダー ファイルでインターフェイス (クラスまたは関数) が定義されます。また、少なくとも 1 つのファイル内で一貫性を保つ必要があります。
そして最後に、私は一貫していると言いましたか?
私は通常、関数宣言を維持する必要があるため、2 番目の形式を使用します。それらには正しい署名と名前が必要です。また、最初に関数を定義するだけで十分なタイピングが必要になります。メンテナンス不要、無駄な時間もありません。
ここに当てはまる原則は、「自分を繰り返さない」ことだと思います。前方宣言を使用すると、不必要に繰り返します。