簡體   English   中英

C ++中的“沒有匹配函數可調用X”錯誤

[英]“No matching function for call to X” Error in C++

我正在嘗試向名為Vertex的類的對象向量中添加一個新對象,該類具有如下構造函數:

Vertex::Vertex(int x)
{
  index=x;
  next=NULL;
  entry_time=0;
  exit_time=0;
  connections=0;
}

但是,我認為我無法將信息直接放入向量中,並認為我必須事先創建Vertex類的對象,將所需的信息歸於該對象,然后通過使用將其添加到向量中

Graph::Graph(bool x, int y)
{
  is_digraph=x;
  order=y;
  is_connected=false;
  for(int i=0; i<order; i++)
  {
    Vertex vt(i+1);
    v.push_back(vt);
  }
}

但是錯誤消息“沒有匹配的函數調用'Vertex :: Vertex()'”不斷彈出,好像我沒有發送整數作為參數,即使我非常確定通過將對象聲明為“ Vertex vt(i +1)“我正在發送一個整數作為參數。 我怎么了

vector需要存儲的類型具有默認(無arg)構造函數。 這是必須的,以便諸如創建具有初始已知數量的元素的向量之類的事情起作用。 您的Vertex沒有默認構造函數,因此不適合按原樣放置在vector

暫無
暫無

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

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