Como usar variavel que foi criada em algum metodo para ser usado em outro metodo?
Solved
Portuguese
-
Boa tarde gente, sou principiante em programacao e estou com uma duvida. Criei um metodo para abrir um arquivo e pegar alguma informacao jogando-a em uma variavel. Mas a minha duvida e': como consigo usar essa mesma variavel mas em outro metodo?
Esse e' meu codigo:
void readJson() { QJsonValue port; QJsonValue ip; QString val; QFile file; file.setFileName("/home/msdilieto/teste.conf"); file.open(QIODevice::ReadOnly | QIODevice::Text); val = file.readAll(); file.close(); qWarning() << val; QJsonDocument d = QJsonDocument::fromJson(val.toUtf8()); QJsonObject sett2 = d.object(); QJsonValue decoder_id = sett2.value(QString("decoder_id")); qWarning() << decoder_id.toString(); port = sett2.value(QString("port")); qWarning() << port.toString(); ip = sett2.value(QString("ip")); qWarning() << ip.toString();
-
Olá @MSDiLieto.
Eu recomendo você a ler a parte inicial desse artigo Escopo (C++).
Escopo refere-se a visão de variáveis em sua aplicação, isto é, se você criar uma variável dentro de uma função, a mesma só será visível e acessivel dentro da mesma. (Lembrando que, quando um escopo é finalizado, as variáveis que e estão neles são removidas da memória.(
Você pode pensar em duas formas de conseguir expor essa informação para outro método.
- Chamando o outro método dentro da sua função de leitura e passando as variaveis desejadas como parâmetro
void func_2(int v) { // acessar a variável V } void func_leitura() { // fazer a leitura int valor = 3; // so existe enquanto o metodo func_leitura é executado. func_2(valor); // chama o outro método }
- Definindo a variável no mesmo escopo onde seus metodos podem visualiza-la e acessá-la. Exemplo Classe
Class A{ public: A() {} void func_2(); void funcLeitura(); private: int valor; // valor pertence a classe e não ao método em si };
void A::func_leitura() { valor = 3; } void A:func_2() { // acessar, exibir ou modificar a variável valor. }