重複の可能性:
空の括弧のセットを使用して引数なしでコンストラクターを呼び出すとエラーになるのはなぜですか?
オブジェクトの作成とメンバー関数の呼び出し
最近、コンストラクターについて少し学びましたが、今日はコンストラクターパラメーターのデフォルト値を設定するのに問題があります。
hppファイルのコンストラクター宣言は次のようになります。
class PlayingCard {
public:
PlayingCard(int value = 0, int suit = 0); //default values supplied
cppファイルの定義は次のようになります。
PlayingCard::PlayingCard(int value, int suit) : _faceValue(value), _suit(suit)
{}
(_faceValue
そして_suit
PlayingCardのプライベートメンバーです)私がこのようにこれをテストするために行くとき:
PlayingCard card1();
PlayingCard card2(7, 1);
cout << "suit int value: " << card1.getSuit() <<
" face value: " << card1.getFaceValue() << endl;
cout << "suit int value: " << card2.getSuit() <<
" face value: " << card2.getFaceValue() << endl;
card1に関連するコードをコメントアウトすると、card2は正常に機能します。そうしないと、エラーが発生します。 クラス以外のタイプの「PlayingCard()」である「card1」のメンバー「getSuit」のリクエスト。
これは、引数なしのコンストラクターの使用を認識しないことを意味する必要がありますか?私は何が間違っているのですか?