最近我学到了一些关于构造函数的知识,但今天我在为构造函数参数设置默认值时遇到了麻烦。
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 可以正常工作。否则我会收到错误: 在“card1”中请求成员“getSuit”,它是非类类型“PlayingCard()”。
这一定意味着它不能识别没有参数的构造函数的使用?我究竟做错了什么?