Ir ao conteúdo

C++ "Colar" Variável a comando(ou biblioteca,função)


Ir à solução Resolvido por Ansi C,

Posts recomendados

Postado

Saudações senhores,

Neste tópico vou repostar minha dúvida de uma forma mais esclarecida(se alguem poder apagar o post antigo,faça-o,por favor),

sobre "colar" uma variável a um comando.Exemplo:

#include <iostream>
using namespace std;
void funcao1{
	cout << "Função um chamada \n";
}
void funcao2{
    cout << "Função dois chamada \n";
}
void funcao{
	cout << "Função três chamada \n";
}
int main(int argc, char *argv[])
{
	int numero = 0;
	cin << numero; //Vamos supor que o usuário digite 2
	
	/*O que eu gostaria é que o número que o usuário digitou
	colasse com a função que eu chamaria,Exemplo:
	*/
	 
    funcao + numero() // aqui ela seria "colado" a variável número e executada
    /*Como eu disse,se o indivíduo digitou 2,a função função2() será chamada
    e a mensagem "Função dois chamada" Será mostrada
    /*
	
	return 0;
}

Mas o único problema é que não sei como faria isso,andei varrendo o google e não achei nada a respeito.

Ps: Eu coloquei  " função + numero() " sendo o operador + somente como exemplo.

Postado
22 minutos atrás, dsgeverton disse:

Já que é conhecido o resultado que será chamado, não é mais fácil utilizar CASE?

Até daria,mas estou fazendo um algorítimo que precisa ser muito rápido (pra arduino,que tem uma carroça de processador).

  • Solução
Postado

@Gabriel G.S. 1023 Olá!

― Entendo (pelo menos em parte ).

Acho que é isso que você está procurando:

/** Tipo para objeto função */
typedef void (*aritm)(int, int);

/** Aritmética Adição, Subtração e Multiplicacao */
void aritm_adicao(int a, int b){aritm_result(a + b);}
void aritm_subtracao(int a, int b){aritm_result(a - b);}
void aritm_multiplicacao(int a, int b){aritm_result(a * b);}

void aritm_result(int r){cout << r << endl << endl;}

int main(void)
{
  aritm operacao[]= {
    [0]= aritm_adicao,
    [1]= aritm_subtracao,
    [2]= aritm_multiplicacao,
  };
  
  int memb_a, memb_b, result;
  cout << "Atencao... Agora entre com um valor inteiro :> "; cin >> memb_a;
  cout << "So mais uma vez, entre com um valor inteiro :> "; cin >> memb_b;

  jmp_operar : cout << "Digite -- ( 0 )->Soma, ( 1 )->Diferenca e ( 2 )->Produto. \n";
               cout << "(   )\b\b\b"; cin >> result;

               cout << "Resultado : "; operacao[result](memb_a, memb_b);
               goto jmp_operar;
  
  return 0;
}

Especuladamente, suspeito da eficiência deste método.

 

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

×
×
  • Criar novo...