From what I can tell, there's nothing syntactically wrong with your code. It must be a problem in your main() function or in another source file that includes the definitions of your classes. Please post all of your code here so that we can see what is going on
Yes. The first problem I see is that you call "novoItemVendas" in metodos.cpp as if it were a regular function. It is a member function in a completely different class. You need a lista_itens_vendas object in order to access it, but you call it from lista_produto.
I assume this is also the problem for escolheProduto, devolveCustodaVenda, and devolvePreco
Also, you redefine multiple functions (i.e, you have more than one definition of them in the source file) which is why the compiler is complaining.
i've already fixed the multiple redefinition , probably happened because i originally had made the methods in the header the copy and pasted to the new file
To fix it, you would need to pass in an object of type lista_itens_vendas (lets assume you call it my_object) into the function that calls novoItemVenda (or the other methods). You can then use this object with the dot (.) operator to access novoItemVenda, like this: