Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Chamar função de dentro de outra função

Estou tentando chamar uma função de dentro de outra função mas sempre retorna a mensagem : ‘nomedafuncao’ was not declared in this scope. Como faço pra uma função chamar a outra corretamente? segue o código.

#include <iostream>
#include <vector>
#include <string>
#include <cstdio>

using namespace std;

vector <string> empresas;
vector <int> papeis;

void acrescenta_empresa(){
    system("clear");
    string empresa;
    int quantidade;
    cout << "Digite a sigla da empresa que recebeu o aporte, ex ABDC2 : ";
    cin >> empresa;
    cin.ignore(80,'\n');
    cout << "Digite a quantidade de papéis adquirida: ";
    cin >> quantidade;
    cin.ignore(80,'\n');
    cout << "Aporte inserido com sucesso !!!";

    empresas.push_back(empresa);
    papeis.push_back(quantidade);

    inicializacao();
}

void inicializacao (){
    system("clear");
    int escolha;
    cout << "============================================ " << endl;
    cout << "=====      MINHA CARTEIRA DE AÇÕES     ===== " << endl;
    cout << "============================================ " << endl;
    cout << endl;

    cout << "[ 1 ] - Listar minha carteira de ações." << endl;
    cout << "[ 2 ] - Acrescentar um aporte à minha carteira." << endl;
    cout << "[ 3 ] - Calcular rendimento de toda a carteira." << endl;
    cout << "[ 4 ] - Encerrar programa.";

    cout << endl << "Digite a opção desejada: ";

    cin >> escolha;
    cin.ignore(80,'\n');

    switch (escolha){
        case 1 :
            cout << "Você escolheu a opção 1" << endl;
            break;
        case 2 :
            acrescenta_empresa();
            break;
        case 3 :
            cout << "Você escolheu a opção 3" << endl;
            break;
        case 4 :
            exit(0);
        default : 
            cout << "Não se qual opção você escolheu a opção 1" << endl;
            break;
    }
}
int main (){

    inicializacao();
}

A função inicializacao() não consegue ser chamada de dentro da função acrescenta_empresa(), será que não dá pra fazer isso?

2 respostas
solução!

Você vai precisar colocar as funções que você quer chamar antes das funções que as chamam. O compilador lê linha a linha, então se a função vier depois da chamada, vai dar erro.

Muito obrigado Otávio Felipe, Por incrível que parece sempre coloquei as funções na ordem correta como você indicou, nunca precisei fazer do jeito que fiz hoje, novamente muito obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software