当前位置: 首页 > 知识库问答 >
问题:

在C++中如何正确返回空/空对象?

穆鸿波
2023-03-14

我是Java开发人员,正在尝试解决一个简单的C++任务。在Java中,如果我想返回一个空的/空的对象,为了表示没有找到该对象,我只需要返回null。示例:

Person getGetByName(String name) {

  for(int i = 0 ;i<10 ;i++) { 
   if(people[i].name == name){
  return people[i]; 
  }  
}
return null; 
}

// later in code I can do 
P p = getByName("Sam"); 

    if(p == null) { ... } 

在C++中,我有以下方法

似乎如果我声明了一个像上面这样的方法,返回NULL不是一个选项,因为该方法不返回指针,而是一个类。那么我返回什么来表示没有找到人呢?

共有1个答案

谢承颜
2023-03-14

您可以通过参数返回person对象,并返回bool以指示是否通过该参数返回了有意义的内容:

bool getGetByName(String name, Person& person)
{
  for(int i = 0; i < 10 ;i++)
  { 
    if(people[i].name == name)
    {
      person = person[i]     // Writing in the person param (note the reference).
      return true;           // Indicate success (i.e. non null).
  }  

  return false;              // Indicates null.
}

在稍后的代码中,您可以编写:

Person aPerson;
if(getGetByName("A name", aPerson))
{
  // aPerson is valid, do something with it.
}

// aPerson is not valid, handle it.
 类似资料:
  • 我开始进入WP开发,我有问题与ACF后对象返回空,我不知道为什么。我创建了一个ACF,分类法的位置等于类别然后字段设置为... 字段名称:推荐的\u资源 然后在岗位上 我得到了无效的任何帮助或指向正确的方向都是非常感谢的。

  • 我已经发布了一个请求,并在postman上测试它,响应在postman和android logcat上正确返回,但在改型时,它在正文中返回null 下面是响应的模型 当我发送请求时,响应将获得null响应,而errorbody内容将获得以下内容 [size=99 text={\r\n“errors”:{\r\n“driversapi”:[\r\n“order alredy assig…] 下面是预

  • 当在testng单元testcase中运行时,JAXB将XML文件解组到对象中工作正常。 当相同的代码被用来在另一个进程中解封相同的XML文件时,我得到了一个空对象。我可以验证对象是为XML文档中的每个元素创建的,并且所有适配器都被调用。在unmarshaller中设置事件处理程序,但没有验证问题。当我设置xmlns属性和前缀时,即使返回空对象,行为也略有不同。 我看了好几篇文章,但都无法与我面临

  • 问题内容: 我有一个文件夹,其中包含index.js和几个模型(类)index.js book.js author.js 问题在于Author类似乎找不到书!它只是一个空对象。但是,如果我在index.js中切换导出,则将Book放在Author之后- 可以,但是其他模型将停止工作。 我不想做任何骇客工作。 问题答案: 这是因为您具有循环依赖关系。Node.js以非常特定的方式处理此问题: 第一个

  • 问题内容: 我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据: 根据要求: 我正在执行以下代码: 我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么? 编辑:以下代码也返回空: 使用的架构: 问题答案: 您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命

  • 我无法理解为什么findFragmentByTag()在我的代码中返回null。我已经在片段onCreate()上设置了RetainInstance(true),并且正在使用getSupportFragmentManager()。findFragmentByTag(),因为它是SherlockFragmentActivity。 这是我的活动代码: } 这是我的片段代码: