Ir para conteúdo
Fórum Script Brasil
  • 0

passando Strings por parametros em classes


Guest Natássia Resende

Pergunta

Guest Natássia Resende

Boa tarde!

Estou fazendo um "programixo" e estou tendo um problema com strings. Não consigo passar um texto para uma função da classe.

segue abaixo o programa que fiz, que só retorna 1 caractere.

o que eu devo fazer para ele retornar o texto inteiro? por exemplo, quero que o usuário digite "Rua xxxx" e ele imprima isso.

tentei várias coisas, só funcionou quando eu coloquei pra retornar um único caractere mesmo! =/

desde já muito obrigada!

class CEndereco
{
      private:
              char rua;
              
      public:
             CEndereco ();
             CEndereco (char);
             char result ()
             {
                  printf("\n Rua %c ", rua);
                  return(0);
                  }
             };

CEndereco::CEndereco (char r)
{
                     rua=r;            
                     }
char r;         
main()
{  
               
                     cout<<"Digite a rua:"<<endl;
                     cin>>r;

      CEndereco obj(r);
      cout<<"SAIDA"<<obj.result()<<endl;
      getch();
      }

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

então natassia, você tem q entender q char não é string. char só ocupa um caracter mesmo. string na verdade é um array de char.

você tem q declara o metodo como pontero de char e as variaveis ou tb como pontero de char, ou como array de char.

exemplo:

private: char *rua;
ou
private: char rua[30];
char *result ()
{
   /* código */
}[/code]

e assim por diante. otro erro no seu metodo é q você não ta retornando a string. você ta printando e retornando 0. assim não é um retorno para o cout q você fez embaxo. imagino q o printf você tenha posto de teste, mas você tem q dar o retorno da rua pro metodo.

é pra copiar string você tb não vai conseguir com o =. você tem duas opcoes, ou copia cada um dos indices do array de um pro otro, ou usa o strcpy do include string.h

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Natássia Resende
então natassia, você tem q entender q char não é string. char só ocupa um caracter mesmo. string na verdade é um array de char.

você tem q declara o metodo como pontero de char e as variaveis ou tb como pontero de char, ou como array de char.

exemplo:

private: char *rua;
ou
private: char rua[30];
char *result ()
{
   /* código */
}

e assim por diante. otro erro no seu metodo é q você não ta retornando a string. você ta printando e retornando 0. assim não é um retorno para o cout q você fez embaxo. imagino q o printf você tenha posto de teste, mas você tem q dar o retorno da rua pro metodo.

é pra copiar string você tb não vai conseguir com o =. você tem duas opcoes, ou copia cada um dos indices do array de um pro otro, ou usa o strcpy do include string.h

Olá!

Então, eu comecei usando char rua[15], mas parece que ao passar o parâmetro pra classe, esta não aceitava! Mandei esse exemplo justamente porque só consegui fazer funcionar com 1 caractere! =/

o compilador retorna o seguinte erro:

" In constructor `CEndereco::CEndereco(char)': incompatible types in assignment of `char' to `char[15]' "

ob3rigada!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...