Jump to content

variavel com nome de variavel


seuqram
 Share

Recommended Posts

#include <iostream>
int main() {
    int repeatedname = 0;
    while (repeatedname++ < 10) {
        int repeatedname = 100;
        std::cout << repeatedname << std::endl;
    }
}

Disponível para verificação no ideone.

What have you tried?

N√£o respondo a d√ļvidas por PM

A minha bola de cristal est√° para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

podes declarar como mesmo nome desde que seja em "scopes" diferentes ... normalmente o compilador da um warning mas deixa compilar

como no exemplo do pmg apresentou, verifica que a variavel "repeatedname" está declarada na função main de novamente dentro do "scope" do ciclo while.

a variavel que é usada será sempre a do "scope" mais interno

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

penso que o que ele quer é algo que é possivel com o php, por exemplo:

$str="pikax";
$$str="P@P"; //o nome desta variavel ser√° "pikax";
echo $pikax."<br>"; //ir√° imprimir "P@P"

penso que a questão seja esta, se sim pelo o que sei é impossível declarar isto em C++, as variáveis têm que ter um nome especifico antes de ser compilado.

Podes sempre usar o "scope" como o pmg disse, mas se explicares o que realmente precisas de fazer, somos capazes de te ajudar.

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

:dontgetit: por acaso isso cria uma variavel com um nome de o valor de outra variavel? e que acho que nao me  perceberam bem! ou n tou a percerber essa logica!

O que o pikax fez sim, faz isso. Talvez não te estejamos a perceber, mas tambem podias usar um pouco mais de cuidado com o português, está bastante descuidado, torna-se de facto difícil de perceber.

Se eu percebi bem, queres vari√°veis cujo nome seja guardado noutras vari√°veis. N√£o sei se h√° outra forma mais elegante de o fazer em C++, eu usaria um hashmap para esse efeito.

EDIT:

@HappyHippyHippo possível é, eu acabei de dar uma solução.

'Arranjar outra solu√ß√£o' neste caso √© uma resposta um pouco 'violenta'. Muitos algoritmos baseiam-se neste tipo de funcionalidade, descart√°-la √© deitar fora muito tipo de solu√ß√Ķes. Programa√ß√£o funcional e resolu√ß√£o de tipos de dados em runtime s√£o a motiva√ß√£o por detr√°s de v√°rios paradigmas e de muitas linguagens de programa√ß√£o. As vantagens s√£o bem conhecidas e demasiado significantes para se deitar fora assim √† partida.

Link to comment
Share on other sites

como criar uma variavel ou ponteiro com o nome de outra variavel? ūüėĀ

criar uma variavel com o nome igual a outra variavel não é guardar o nome da variavel.

fundamentalmente, dentro do mesmo scope, não é possivel declarar duas variáveis distintas com o mesmo nome ...

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

criar uma variavel com o nome igual a outra variavel não é guardar o nome da variavel.

fundamentalmente, dentro do mesmo scope, não é possivel declarar duas variáveis distintas com o mesmo nome ...

Ah ok, não tinha percebido, mas isso não dá em linguagem nenhuma, porque isso é simplesmente o contrário da definição de variável. Um elemento sintático não ambíguo num espaço de nomes.

Link to comment
Share on other sites

Eu acho que est√£o a meter o carro √† frente dos bois. Penso que primeiro √© preciso conseguir perceber o que √© que o seuqram realmente quer ūüėĀ

@seuqram

Consegues explicar aquilo que queres de outra forma, ou exemplificar o que é que pretendes implementar?

‚ÄúThere are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.‚ÄĚ

-- Tony Hoare

Link to comment
Share on other sites

Estive a ler algumas vezes a pergunta do seuqram e n√£o consigo mesmo adivinhar o que ele quer.

pressiso de ajuda urgente!

como criar uma variavel ou ponteiro com o nome de outra variavel? ūüėĀ

Criar "v√°rias"(mais que uma) variaveis com o mesmo nome

//includes etc etc

int main()
{
   
    int var=4;  //variavel inteira
   cout<<"var="<<var<<endl;
   
   //char var = '5';  //errado!!!!
   
   //se "criar-mos" um scope "novo"
   {
       char var= '5'; //certo, mas não conseguimos aceder  ao var int
       cout<<"var="<<var<<endl;
   }

   cout<<"var="<<var<<endl; //irá ser int
   
   char * str="123455667";
   char *endstr=str+strlen(str)-1;//já não me lembro se é assim 
   for(char *var=str;var!=endstr;var++)
  {
      {
           float var=12.4f;
          cout<<"var="<<var<<endl;
      }
      cout<<"var="<<var<<endl;
   }

   cout<<"var="<<var<<endl;
}

Penso que aqui mostra muitos dos casos do scope e como podemos "brincar", mas isto fica muito confuso, at√© eu fiquei perdido a escrever ūüėĀ

Se quiseres criar uma variável string com um determinado valor, por exemplo "PAP", e quiseres criar uma variável com esse nome relativo, isso não é possível em C++ só em PHP, é melhor eu explicar em código:

//ISTO NAO FUNCIONA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//N√āO ACONSELHADO A PESSOAS SENS√ćVEIS, PODE TRAUMATIZAR O C√ďDIGO!!! 

//não me responsabilizo por danos psicológicos causados após ler este código

int main()
{
   string str;
   cout<<"introduza o nome da string:";
   cin>>str;
  /*
   string str.c_str()+"1"="error!!!!!";//nao sei o que meter para criar a varivel com o valor de str :S 
   //em c++ nem tem lógica isto, o que me veio à cabeça com mais lógica foi mesmo returnar o valor da string str.
   // meti str.c_str()+"1", por causa do cout em baixo.

   //PHP seria "$$str."1";"

  //não sei como chamar a variavel LOOOL
  cout<< "str.c_str()+"1" = "<<str.c_str()+"1"<<endl;
  //PHP seria algo como: echo "$$str=".$$str;
  */
  cout<<"str="<<str<<endl;
}

No comments....

:dontgetit: por acaso isso cria uma variavel com um nome de o valor de outra variavel?

Em C++ acho que √© imposs√≠vel fazer algo como o 2 codigo que p√īs aqui, √© simplesmente il√≥gico programar em C++ a pensar em criar um vari√°vel em que o nome dela seja o valor de outra, √© poss√≠vel em PHP mas sem ser em casos excecionais penso que n√£o se deva usar, porque o c√≥digo fica confuso.

J√° agora o c√≥digo que escrevi aqui no outro post √© em PHP N√āO √Č EM C++!!!!

penso que o que ele quer é algo que é possivel com o php, por exemplo:

$str="pikax";
$$str="P@P"; //o nome desta variavel ser√° "pikax";
echo $pikax."<br>"; //ir√° imprimir "P@P"

penso que a questão seja esta, se sim pelo o que sei é impossível declarar isto em C++, as variáveis têm que ter um nome especifico antes de ser compilado.

Podes sempre usar o "scope" como o pmg disse, mas se explicares o que realmente precisas de fazer, somos capazes de te ajudar.

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

nnnnnnnnnnnnnnnn :nono1: vejam la se percebem:

tenho uma variavel chamada variavel1 com valor: variavel2

eu quero que voces me dissessem como criar uma variavel que fique com o nome do valor da variavel1 (que seria:variavel2)

depois passavam a haver 2 variaveis chamadas:

variavel1

variavel2

se o valor da variavel1 fosse variavel3 queria criar uma variavel chamada variavel3 e ficavam 2 variaveis chamadas:

variavel1

variavel3

(quero criar uma variavel cujo nome seja um valor de outra veriavel)

Link to comment
Share on other sites

o utilizador escolhe um nome e depois é criado uma variavel com esse nome!

onde posso utilizar isso???

para editores.

o proposito deste topico é tambem entrar na base de dados das variaveis de uma forma dificil:

fopen ("(o valor de uma variavel)","wb");

assim iria criar/buscar um ficheiro chamado (o valor de uma variavel)

nao é possivel!?

Link to comment
Share on other sites

Então, aquilo que queres é guardar a valor numa variável para que possas utilizar posteriormente. Não precisas que a variável tenha esse nome.

Como estamos na secção de C++, a forma mais fácil será recorreres a strings:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() {
    string input = "";
    cin >> input;
}

O que est√° na vari√°vel de input pode ser, por exemplo, o nome do ficheiro que o utilizador quer abrir.

FILE *xpto = fopen(input.c_str(), "wb");

Se o utilizador quiser abrir um ficheiro chamado "abcd", a vari√°vel input vai ter o valor "abcd", logo o fopen(input.c_str(), "wb") ser√° exactamente o mesmo que teres fopen("abcd", "wb").

‚ÄúThere are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.‚ÄĚ

-- Tony Hoare

Link to comment
Share on other sites

nnnnnnnnnnnnnnnn :nono1: vejam la se percebem:

tenho uma variavel chamada variavel1 com valor: variavel2

eu quero que voces me dissessem como criar uma variavel que fique com o nome do valor da variavel1 (que seria:variavel2)

depois passavam a haver 2 variaveis chamadas:

variavel1

variavel2

se o valor da variavel1 fosse variavel3 queria criar uma variavel chamada variavel3 e ficavam 2 variaveis chamadas:

variavel1

variavel3

(quero criar uma variavel cujo nome seja um valor de outra veriavel)

Já é praí a quarta vez que digo. Tu queres um hashmap. Os hashmaps servem precisamente para isso.

http://goo.gl/j2ogX

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.