Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulopatto

[Resolvido] Strings e sobrecarga de função (método)

Recommended Posts

Olá bom dia a todos.

 

 

Tenho duas dúvidas bestas em C, que é como eu faço a sobre carga de funções (métodos), em java sei que posso fazer:

 

public void foo(String nome){...}
public void foo(int id){...}
public void foo(ArrayList<Pessoa>){...}

Mas e em C? E com essa sobrecarga ele vai saber qual a implementação adequada e chamar ela ou tenho de indicar sempre?

 

 

 

Quanto a String.h quero saber se posso fazer igual quando uso #include<string> pois com essa declaração o tipo string é válido para a declaração string nome. Mas com string.h será possível usar esta declaração?

 

 

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1ª pergunta: Em C não tenho certeza cara, mas em C++ dá. Aí não precisa de nenhum identificador em especial, a função roda de acordo com os parâmetros que forem passados.

 

2ª pergunta: Cara acho que não. string tem essa declaração do tipo string que tu falou, e string.h tem funções que realizam operações com strings (concatenar, comparar, etc...), mas utiliza a forma normal das strings (arrays de char).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em C não tem como fazer sobrecarga de função como em C++. O que eu sei que dá p/ fazer é usar callbacks e ponteiros p/ função, mas nesse caso você tem uma função que compara o tipo e depois chama a função responsável (que provavelmente precisa ter nomes diferentes). Ou você pode trabalhar com função variadic e ponteiros void.

 

 

 

http://unixpapa.com/incnote/variadic.html

 

 

 

Não existe tipo string em C padrão. É tudo char *. P/ ter alguma coisa pronta você precisa de biblioteca de terceiros. Procure por SafeStr ou Vstr.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.