私は2つのコンパイラでテストしましたが、どちらも文句なしに次の定義をサポートしていることに驚きました。
class A {
A();
};
A::A::A() {}
^^^
これはメソッドでも成功しますが、宣言が過剰に修飾されている場合はフラグが付けられることに注意してください。
質問:
- これは有効なC++プログラムですか?
- もしそうなら、それはどのような目的に役立ちますか?それとも単なる副産物ですか?
更新された詳細:
元の質問が明確でないか短すぎる場合:定義で冗長な資格が許可されている理由に興味があります(強調も上に追加されています)。
ClangaAppleのGCC4.2+LLVMがコンパイラでした