Ir ao conteúdo
  • Cadastre-se

C++ no matching function for call to


JONASILVA
Ir à solução Resolvido por ll1,

Posts recomendados

Comecei agora com c++ e estou tendo este problema em varios projetos:

#include <iostream>
#include <list>

using namespace std;

class Item
{
    private:
    string name;
    double price;

    public:
    Item (string name, double price)
    {
        this -> name = name;
        this -> price = price;
    }
};
class Order
{
    private:
    list <Item> items;

    public:
    void addItem(Item item)
    {
        items.insert(item);
    }
};
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}


 

O problema e nessa funcao:


    public:
    void addItem(Item item)
    {
        items.insert(item);
    }

 

na parte items.insert(item) da o erro "no matching function for call to 'std::__cxx11::list<Item>::insert(Item&)"

 

sou iniciante então ja peço desculpa se o codigo estiver estranho.

Link para o comentário
Compartilhar em outros sites

image.png.8bafed4661ee167e22b73a7af34bbfb4.png

 

DE
 

http://www.cplusplus.com/reference/list/list/insert/

 

Veja a mensagem com atenção:
 

1 hora atrás, JONASILVA disse:

"no matching function for call to 'std::__cxx11::list<Item>::insert(Item&)"

 

Nas 5 possibilidades que tem na lista lá em cima não tem um match com essa que tentou usar, com um parâmetro só...

Insert precisa de dois parâmetros ao menos

 

55 minutos atrás, ll1 disse:

porque você ta inserindo parametros pra declarar função VOID?

 

Parâmetros são entrada, void seria o retorno. AddItem()  não está retornando nada e insert() retorna um iterator.

 

50 minutos atrás, JONASILVA disse:

Eu vou chamar função addItem passando como parâmetro um objeto do tipo Item para adicioná-lo na list, não sei se é assim que faz mas como vim do Java e lá pode declarar parâmetros em funções do tipo VOID achei que poderia fazer isso no C++

 

Nada tem a ver o tipo de retorno da função com a existência ou o número de parâmetros. Em nenhuma linguagem que eu já tenha visto.

 

Seu erro vem do fato que insert espera dois parâmetros nesse seu caso . E retorna um iterator, Você tem um livro sobre C++? Uma apostila? Um site de referência ou algo assim? 

 

Tem um exemplo do uso de lista aqui http://www.cplusplus.com/reference/list/list/insert/
image.png.37074eb27309f65152d914e461d307b9.png
 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...