我已经写了下面的代码。我有一个构造函数,它包含五个参数。不幸的是,setGender方法为类的所有实例发出默认的'M‘,而不是将性别设置为指定的参数。我做错什么了?如有任何建议,将不胜感激。谢谢。
DateProfile::DateProfile(char gdr,
char searchGdr, int romanceScale, int financeScale, string theName)
bool DateProfile::setGender(char gdr)
{
if (gdr != 'M' || gdr != 'F')
return false;
gender = gdr;
return true;
}发布于 2015-05-31 21:57:18
if (gdr != 'M' || gdr != 'F')是,无论输入如何,始终是 true。如果要传递'M',则表达式的第二部分为真。如果要传递其他内容,则表达式的第一部分变为真。
你想写的是if (gdr != 'M' && gdr != 'F')。
增加编译器的警告级别可能会帮助您发现错误。大多数编译器会对总是计算为单个值的表达式发出警告,或者至少警告后面无法到达的代码。
https://stackoverflow.com/questions/30563083
复制相似问题