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