0

重複の可能性:
コンストラクターのこの奇妙なコロンメンバー構文は何ですか?
C++の初期化

C ++プログラムでヘッダーファイルを受け取ったばかりですが、このコード行が何をするのか理解できません。

Card(Value faceValue=deuce, Suit suit = clubs):
suit(suit), faceValue(faceValue) {}

どういう:意味ですか、そしてなぜそれを;(私がそうすべきだと思ったように)置き換えるとコードが壊れますか?

この質問の一般性について申し訳ありませんが、誰かがこれらの2行の目的を説明できますか?

お時間をいただきありがとうございます。

4

3 に答える 3

2

Cardこれは、クラスのコンストラクターのように見えます。後の部分:は初期化リストであり、メンバー変数(または親クラスですが、この場合は当てはまらないと思います)の値を初期化します。コンストラクターの本体は、必要なすべてが初期化子リストで行われたため、空です。

于 2012-09-17T03:20:07.137 に答える
2

:とそれに続くのは初期化リストです。コンストラクター本体でメンバー変数を割り当てる代わりに使用する理由は、コンストラクター本体内でそれを行うと、デフォルトのコンストラクターが最初に呼び出され、次にコピーコンストラクターまたは代入演算子が呼び出されるためです。初期化リストを使用すると、最初のステップをスキップできます。

于 2012-09-17T03:21:27.980 に答える
1

初期化リスト。これは、C++でクラスコンストラクターを初期化するための推奨される方法です。

constコンパイルエラーなしでクラスのメンバーの初期化を可能にするために使用されます。

于 2012-09-17T03:19:51.630 に答える