答えて
実際にはセミコロンは違いはありません。それはおそらく習慣の問題です。
あなたがC++ 11にかかわらたい場合は、できるだけ多くセミコロンを置くことができます。
void foo() {
};;;;;;;;
....しかし、C++ 11以降のみです。 –
@LuchianGirgore: "空の宣言"はC++ 11で導入されました。http://stackoverflow.com/questions/4335024/grammar-of-ac-translation-unit –
またはhttp://stackoverflow.com/questions/ 5487849/shall-ac-class-function-end-a-or-only-a- –
をいや、それは単に無視されます。タイプミスのように見えます。
セミコロンは、クラス定義の中かっこで囲まれている必要があります。クラス定義内でクラスメンバ関数定義の後には必須ではありません。 Isは、クラスメンバ関数の宣言の後でも、クラス定義の内部だけでは必要です。
#ifndef FRAME_COUNTER_H
#define FRAME_COUNTER_H
#include <iostream>
#include <SDL/SDL.h>
const Uint32 FPS = 60;
const Uint32 DELAY_TIME = 1000.0f/FPS;
class FrameCounter {
public:
FrameCounter();
void setFPS(int FPS) { m_FPS = FPS/(m_frameAccumulator/1000); }
void start() { m_frameStart = SDL_GetTicks(); }
void run();
void reset() {}
void print() { printf("\nFPS: %5.1f\n", m_FPS); }
private:
int m_frameNumber;
Uint32 m_frameStart;
Uint32 m_frameDuration;
Uint32 m_frameAccumulator;
double m_FPS;
};
#endif
明確にするには、クラス定義に従う必要がありますが、クラスメンバー関数定義の後の*クラス内では必須ではありません。 –
あなたの質問に対する答えは、この関数の定義が行われる範囲によって異なります。
名前空間スコープでこのような関数を定義すると、末尾の;
は関数定義とは関係ありません。単に関数定義に続く別の空の定義を構成します。空の定義は、現代のC++の名前空間の範囲では合法です。これは、名前空間のスコープで余分な余分なセミコロンを必要なだけ追加できることを意味します。
クラススコープでこのような関数を定義すると、定義の最後にオプションの;
を追加することは常に許可されています。そのような;
は、関数定義の不可欠な部分であり、文法によって明示的に許可されています。私。末尾が;
であるクラススコープでは、独立した空の定義を構成しません。さらに、空の定義はクラススコープでは許可されません。つまり、クラススコープでは、関数定義の後にオプションの;
を1つだけ追加できますが、これ以上は追加できません。
- 1. javascriptで関数の後にセミコロンを置くのはいつですか?
- 2. 'for'ループの後のセミコロンの効果
- 3. クラス宣言後のセミコロン中括弧
- 4. メソッド実装の最後にセミコロン
- 5. if文の末尾にあるセミコロンとCの関数
- 6. PHP create_function、セミコロンなしの関数ですか?
- 7. Obj-C関数宣言にセミコロンが必要ですか?
- 8. セミコロン
- 9. 文字列のセミコロンを数えるシェルスクリプト
- 10. ループ後のセミコロンの検出/ブラケットの場合
- 11. イベント終了後の関数
- 12. "..."静的関数の最後の引数
- 13. 関数テンプレートの最後のデフォルトテンプレート引数
- 14. if(); do、セミコロンは括弧の直後にありますか?
- 15. JavaScriptでセミコロンを使用して関数を閉じます。必要?
- 16. なぜwritedump関数はcfscriptでセミコロンを必要としませんか?
- 17. C++のオプションのセミコロン
- 18. AS3 - 別の関数の最後の関数
- 19. 関数名の後の関数パラメータの宣言
- 20. Linuxのコマンドラインでセミコロン
- 21. Luaセミコロンの表記
- 22. ダッシュ・セミコロン(;;)の構文
- 23. 再帰関数 - 2つの関数または最後のオプションパラメータ
- 24. 関数の後にプロトタイプ関数を実行する
- 25. PHP関数のreturn文の後のコード
- 26. 2秒後の関数の実行
- 27. jquery get関数の後のフェードアウト
- 28. レールのフィルタ/関数の前と後に
- 29. セミコロンのMakefileのルール定義
- 30. テーブルの最後のmysql値の後のPHP関数
多分、クラス定義と一貫性を持たせたいでしょうか?これは最善の考えではない、と私は思う。 –
C++セミコロンは、ステートメントが終了する場所をコンパイラに伝えるために使用されます。関数やスコープブロックの本体は、それ自身の中のステートメントではないので、オブジェクトを定義するときに '}'の後に必要なのはたいていの場合です。余分な ';'や空文を置くことは特に害はないものの、コンパイラによっては警告やエラーが発生することがあります。 – AJG85
私はコピー/貼り付けの誤り、またはそれらが不要であるという誤解を疑うでしょう。 –