我正在处理一些这样的c++代码:

//c++ code
class MovieInfo;

MovieInfo getMovieInfoByName(String movieName)
{
    //search the movieInfoList with movieName
    if(FOUND)
        return movieInfo;
    //TODO: **what should i return if the movieInfo can't be found in the list?**
}

问题是,如果在列表中找不到movieInfo,我应该返回什么?

最佳答案

您有几种选择:

  • 定义MovieInfo类,以使“无效”实例成为可能(类似于默认构造的std::thread如何不代表实际线程)并返回此类实例。
  • 使其成为getMovieInfoByName()的前提,该名称对应有效的电影信息,并且如果不匹配,则简单地返回一个随机值(因为“违反前提条件会导致未定义的行为”)。
  • 找不到名称时引发异常。
  • 返回类似 boost::optional<MovieInfo> 的内容。
  • getMovieInfoByName()一个MovieInfo类型的额外参数,如果找不到与该名称匹配的参数,它将用作返回值。

  • 这完全取决于功能的预期用途。

    关于c++ - getObjByName()应该返回什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19315734/

    10-13 08:24