このプレゼンテーション: http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf
explicit
著者は、N-ary コンストラクターが C++11 バージョンのキーワードの恩恵を受けることを示唆しています。
複数のコンストラクター パラメーターがある場合にこのキーワードを便利にする C++11 の変更点は何ですか?
このプレゼンテーション: http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf
explicit
著者は、N-ary コンストラクターが C++11 バージョンのキーワードの恩恵を受けることを示唆しています。
複数のコンストラクター パラメーターがある場合にこのキーワードを便利にする C++11 の変更点は何ですか?
A
C ++ 11では、複数のパラメーターを持つクラスの非明示的なコンストラクターがある場合(ここでA::A(std::string, int, std::string)
は例として使用します)、中括弧の初期化を使用してその型の引数を初期化できます。
void foo(A a);
foo({"the", 3, "parameters"});
同様に、戻り値でも同じことができます。
A bar() {
return {"the", 3, "parameters"};
}
ただし、コンストラクターがの場合explicit
、これらはコンパイルされません。したがって、explicit
キーワードは、変換コンストラクターだけでなく、すべてのコンストラクターにとって重要になります。