把一个字符串放在条件中(c ++)

时间:2012-04-15 16:30:52

标签: c++ string conditional-statements

为什么我会收到此行的错误?

void Student::SetName(const string newName)
{
 if(newName!=NULL) //could not deduce template argument for 'const T1 *' from 'int'
{
     .....
}

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

可能的解决方案:

if(!newName.empty())

if(newName.size()) // If size = 0 so no caracters in string

if(newName == "") // Empty string

答案 1 :(得分:1)

这不是C#,C ++中的字符串不是可空类型。只有指针实际上可以是NULL,你不能定义一个变量而不在C ++中为它赋予一些基本值,除非你使用指针。

您的代码应该如下所示:

if(!newName.empty())
    ....