c++ setGender方法恢复为默认值

C++ setGender method reverts to default values

本文关键字:默认值 恢复 方法 setGender c++      更新时间:2023-10-16

我已经编写了下面的代码位。我有一个构造函数,它有五个参数。不幸的是,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;
}

if (gdr != 'M' || gdr != 'F')总是为真,无论输入。如果你通过了'M',表达式的第二部分为真。如果传递的是其他内容,则表达式的第一部分为真。

你想写的是if (gdr != 'M' && gdr != 'F')

提高编译器的警告级别可能有助于您发现错误。大多数编译器都会警告表达式总是求值为单个值,或者至少警告它后面的不可达代码。