Jump to content
  • Sign Up

C++ Como criar uma função C++ com dois tipos de parametros diferente?


 Share

Recommended Posts

Olá pessoal, sou novo em c++ preciso de ajuda.

Preciso criar uma função que tenha dois parametros diferente um do outro, estilo a formula se() do excel. Onde se consegue usar qualquer tipo de dados juntos nos paremtros e no retorno.

<

#include <iostream>

using namespace std;

 double teste (double a, double b, char c, char d){
     return (a > b )? c : d;
 }

 int main(){

     cout << teste(1,2,'x','y') << endl;

     return 0;
 }

>

o codigo roda normal, mas em vez de imprimir as letras ele imprime numeros.

Já tentei fazer função template e da o mesmo erro.

<

#include <iostream>

using namespace std;

template < typename N>
N funcao(N a, int b, char c, char d)
{
    N result = (a<b)? c : d;
    return (result) ;
}
int main(){

cout << funcao(1,2,'x','y' )  << endl;

return 0;
}

>

Desde já agradeço quem puder ajudar ou tentar ajuda.

 

  • Amei 1
Link to comment
Share on other sites

  • Carlos Vilas boas changed the title to Como criar uma função C++ com dois tipos de parametros diferente?

@Carlos Vilas boas     você pode colocar a função com o tipo char , e tudo irá bem ,

#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
char teste(double a, double b, char c, char d)// tipo char retrna tipo char
{
    return a > b ? c : d; // ? ternário true faz o primeiro false faz o segundo
}
int main()
{
    cout << "Valor retornado -> " << teste(1,2,'x','y') << endl;
    return 0;
}

e esse símBolo    < >    foi Legal .

e você postou no tópico de c++ , mas esse seu código está todo em linguagem c , apenas o cout <<  é da linguagem c++ , que poderia ser assim  :

#include <iostream>
#include <iomanip>
#include <vector>
#include <string.h>
#include <cstring>
#include <string>
using namespace std;
string teste(double a, double b, string c, string d)// tipo string retrna tipo string
{
    return a > b ? c : d; // ? ternário true faz o primeiro false faz o segundo
}
int main()
{
    cout << "Valor retornado -> " << teste(1,2,"x","y") << endl;
    return 0;
}

 

  • Curtir 1
  • Amei 1
Link to comment
Share on other sites

@devair1010 Muito obrigado man, o codigo rodo certinho. Estava a uma semana tentando fazer esse codigo rodar para criar uma dll no vba do excel, agora outra lutra para rodar ele na vba como dll . Esse codigo é generico em cima dele vou criar outros mais complexo. Ainda estou aprendendo c++, então, não sei muito a diferença entre c e c++ na forma de escrever o codigo, com tempo pego o jeito. Valeu e um grande abraço.

4 horas atrás, devair1010 disse:

@Carlos Vilas boas     você pode colocar a função com o tipo char , e tudo irá bem ,






#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;
char teste(double a, double b, char c, char d)// tipo char retrna tipo char
{
    return a > b ? c : d; // ? ternário true faz o primeiro false faz o segundo
}
int main()
{
    cout << "Valor retornado -> " << teste(1,2,'x','y') << endl;
    return 0;
}

e esse símBolo    < >    foi Legal .

e você postou no tópico de c++ , mas esse seu código está todo em linguagem c , apenas o cout <<  é da linguagem c++ , que poderia ser assim  :






#include <iostream>
#include <iomanip>
#include <vector>
#include <string.h>
#include <cstring>
#include <string>
using namespace std;
string teste(double a, double b, string c, string d)// tipo string retrna tipo string
{
    return a > b ? c : d; // ? ternário true faz o primeiro false faz o segundo
}
int main()
{
    cout << "Valor retornado -> " << teste(1,2,"x","y") << endl;
    return 0;
}

 

 

Link to comment
Share on other sites

8 horas atrás, Carlos Vilas boas disse:
2 horas atrás, Carlos Vilas boas disse:

a diferença entre c e c++ na forma de escrever o codigo

Preciso criar uma função que tenha dois parametros diferente um do outro, estilo a formula se() do excel. Onde se consegue usar qualquer tipo de dados juntos nos paremtros e no retorno

 

Não entendi o que precisa fazer. 

 

Em C++ pode simplesmente declarar as funções com o mesmo nome e a lista de parâmetros de que precise. Isso se chama overload e não está disponível em C, embora possa ser conseguido usando void*.

 

O compilador C++ escolhe a versão correta a partir dos parâmetros.

 

templates em C++ vão gerar as funções em tempo de compilação com os parâmetros adequados e pode ser outra opção.

 

C e C++ são linguagens bem diferentes. Muito diferentes. No entanto quase tudo de C compila ok em C++. Só isso. C tem 60 anos, C++ tem 50, e continuam evoluindo.

 

 

 

 

  • Curtir 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Create New...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!