Tag: 哨兵

如果找不到search结果,则返回“NULL”对象

我对C ++相当陌生,所以在学习的时候我倾向于devise大量的Java-isms。 无论如何,在Java中,如果我有一个“search”方法的类,将返回一个Collection< T >匹配一个特定参数的对象T ,我会返回该对象,如果对象没有在集合中find,我会返回null 。 然后在我的调用函数,我只是检查if(tResult != null) { … } 在C ++中,我发现如果对象不存在,我不能返回null值。 我只想返回一个types为T的“指示符”,通知调用函数没有find对象。 我不想抛出exception,因为这不是一个真正的例外情况。 这就是我现在的代码: class Node { Attr& getAttribute(const string& attribute_name) const { //search collection //if found at i return attributes[i]; //if not found return NULL; // what should this be? } private: vector<Attr> attributes; } 我怎样才能改变它,所以我可以给这种标记?