Possible Duplicate:
Why is it an error to use an empty set of brackets to call a constructor with no arguments?
Constructing Objects and Calling Member functions設置構造默認值
最近,我瞭解了一些關於構造函數,但今天我一直有麻煩的構造函數的參數設置默認值。
在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 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;
card2工作正常,如果我註釋掉與card1相關的代碼。 否則,我得到錯誤: 請求'card1'中的成員'getSuit',它是非班級類型'PlayingCard()'。
這意味着它不能識別沒有參數的構造函數的使用?我究竟做錯了什麼?
呃哈哈非常感謝你,我現在用它.. – Holly 2012-01-17 11:44:05