aramaico 0 Denunciar post Postado Março 19, 2014 Pessoa p[2]; for (int x = 0; x < 2; x++) { cout << "Nome da Pessoa [" << x << "]:" << endl; cin >> p[x].nome; cout << "Sexo: " << endl; cin >> p[x].sexo; cout << "Altura: " << endl; cin >> p[x].altura; cout << "Peso: " << endl; cin >> p[x].peso; cout << "Imc Pessoa [ "<< x << " ]:"<< p[x].getImc(); } //Minha dificuldade com função é passar o valor dos dois nomes p[0] e p[1] para fazer // a comparação se for igual retorna true ou false. //como chamar a função e passar os dois nomes? p[0].verificaNome(); //como passar o parâmetro do p[0].nome e p[1].nome; Bom dia, Estou precisando de ajuda em uma função struct, veja o código abaixo: #ifndef _PESSOA_H #define _PESSOA_H struct Pessoa { std::string nome; float altura; float peso; std::string sexo; float imc; float getImc() { return peso/(altura*altura); } bool verificaNome() { if (nome == nome) { //Não sei como passar o parametro return true; }else { return false; } } } meu arquivo que principal, não vou postar todo o código mas vou postar a parte principal, acima ignore a não inclusão string.h; alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 19, 2014 bool verificaNome(string aName) {...} Comece a prestar atenção no código que pode ser reduzido. Ao invés de bool verificaNome(string aName) { if (nome.compare(aName) == 0) return true; else return false; } Escreva bool verificaNome(string aName) { return !nome.compare(aName); } Compartilhar este post Link para o post Compartilhar em outros sites
aramaico 0 Denunciar post Postado Março 19, 2014 Bom dia, _Isis_! Obrigado pela ajuda na função, minha dificuldade esta em passar esse parâmetro do arquivo .cpp para o arquivo .h. Passar parâmetros de outras forma da certo. Mas quando o nome esta dentro de um vetor de tipo "Pessoa", não consigo passar o nome das duas pessoas armazenada dentro do vetor. Mas quando criou a variável Tipo Pessoa p1 e Pessoa p2, consigo fazer a comparação. Minha dúvida se consigo utilizar um único tipo armazenado no vetor, e fazer essa comparação. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 19, 2014 Explique o "passar do .cpp p/ o .h", porque não vejo lógica nisso. O .h contém apenas os protótipos das funções, constantes, macros e definições de tipos. Compartilhar este post Link para o post Compartilhar em outros sites
aramaico 0 Denunciar post Postado Março 19, 2014 Este é o arquivo .cpp Pessoa p[2]; for(int x = 0; x < 2; x++){ cout << "Nome da Pessoa [ " << x << " ]:" << endl; cin >> p[x].nome; cout << "Sexo: " << endl; cin >> p[x].sexo; cout << "Altura: " << endl; cin >> p[x].altura; cout << "Peso: " << endl; cin >> p[x].peso; cout << "Imc Pessoa [ "<< x << " ] :" << p[x].getImc(); cout << "\n"<< endl; } cout << p[0].verificaNome(p); Este arquivo .h onde fica estrutura e funções. struct Pessoa { std::string nome; float altura; float peso; std::string sexo; float imc; float getImc() { return peso/(altura*altura); } std::string verificaNome(Pessoa p1[2]) { if(!p1[0].nome.compare(p1[1].nome)) { return "Pessoas iguais"; } else { return "Pessoas Diferentes"; } } }; Criei um tipo Pessoa e armazenei duas pessoas dentro de vetor, queria comparar somente os elementos em ter que passar o vetor inteiro, então postei aqui, mas para não perder mais tempo passei como parâmetro para a função o vetor que criei e fiz a comparação dos elementos no .h. Compartilhar este post Link para o post Compartilhar em outros sites
GBecker 51 Denunciar post Postado Março 20, 2014 Caramba, recomendo que estude funções. http://pt.wikibooks.org/wiki/Programar_em_C/Fun%C3%A7%C3%B5es Compartilhar este post Link para o post Compartilhar em outros sites