私はこの問題を奨励します: もし私が持っているなら
class A
{
public:
};
int main()
{
A a{};
A b{a};
}
gcc は次のように与えます:
move.cc: 関数 'int main()' 内: moves.cc:15:7: エラー: 'A' A b{a} の初期化子が多すぎます。
しかし、A b{a} の代わりに A b(a) を使用すると、すべて正しくコンパイルされます。デフォルトのコンストラクターを宣言すると、それもコンパイルされます。なぜそう機能するのですか?