eloclacs 0 Denunciar post Postado Novembro 30, 2013 Boa noite, tenho uma grande duvida sobre como passar valores via teclado para um objeto em C++, ja tentei de várias formas, tenho como exemplo esse programa q faria uma leitura simples de uma string:Ele da erro na linha da instancia: #include <cstdlib> #include <iostream> #include <string> using namespace std; class Mensagem{ public: string nome; Mensagem(string n){ nome = n; } public: void imprimir(){ cout<<"O seu nome eh:"<<nome; } }; int main(int argc, char *argv[]) { Mensagem m; string nome; cout<<"Digite o nome: "<<endl; cin.get(m.nome); cout<imprimir(); system("PAUSE"); return EXIT_SUCCESS; } Como devo instancia-lo e passar a string? Obrigada. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Dezembro 1, 2013 cout<imprimir(); 1) Você não tem uma função chamada imprimir e sim um método da classe Mensagem com este nome. A chamada ao método está errada. 2) O método imprimir foi declarado como void, portanto não há nenhum retorno para ser exibido com o cout. 3) Tanto cout quanto cin requerem o << ou >>, respectivamente. Portanto, utilizar apenas < está errado. Nesta outra linha: cin.get(m.nome); Está passando o atributo nome da classe Mensagem. Mas o método get não aceita o objeto std::string como parâmetro. Faça leitura através de um vetor de char em seguida instancie o atributo. http://www.cplusplus.com/reference/string/string/ http://www.cplusplus.com/reference/istream/istream/get/?kw=cin.get Compartilhar este post Link para o post Compartilhar em outros sites