簡體   English   中英

引用已刪除的函數數組

[英]Referencing deleted function Array

我想在std::vector返回一個實體,但是編譯器告訴我我正在引用一個已刪除的函數。

vector<unique_ptr<Node>> children;        //member of a class

unique_ptr<Node> Node::selectNext() {    //function for a class
    for (int i = 0; i < children.size(); i++) {
        if (children[i]->getUI().mouseSelect())
            return children[i];           //Problem is in this return statement
    }
    return nullptr;
}

我相信編譯器與智能指針沖突。

這可能是一個相對容易解決的問題,但是我不確定我做錯了什么。 問題可能大於此,因為此類是節點類。

您不能共享唯一的ptrs。

Node* Node::selectNext() {    //function for a class
  for (int i = 0; i < children.size(); i++) {
    if (children[i]->getUI().mouseSelect())
        return children[i].get();
  }
  return nullptr;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM