質問: コンストラクタ内のこの奇妙なコロンメンバー( ":")構文は何ですか? 最近、次のような例を見ました。#include <iostream> class foo { public: int bar; foo(int num): bar(num) {}; }; int main(void) { std::cout << foo(42).bar << std::endl; return 0; } この奇妙な: bar(num)はどういう意味ですか?どういうわけか、メンバー変数を初期化するようですが、この構文を見たことはありません。関数/コンストラクター呼び出しのように見えますが、int?私には意味がありません。おそらく誰かが私を啓発できるでしょう。ちなみに、このような他の難解な言語機能はありますか、通常のc++の本には決してないでしょうか?
回答: あなたは正しい、これは確かにメンバー変数を初期化する方法です。これが初期化であることを明確に表現する以外に、これに多くの利点があるかどうかはわかりません。コード内に「bar = num」を含めると、移動、削除、または誤解されやすくなります。