SET method does not modify vector attribute on object of a class

Asked

Viewed 29 times

0

Follow the full code:

// sistemafinanceiro.h

#ifndef SISTEMAFINANCEIRO_H
#define SISTEMAFINANCEIRO_H
#include"banco.h"

class SistemaFinanceiro
{

    private:

    Banco banco;

public:
    SistemaFinanceiro();
    Banco getBanco();

};

#endif // SISTEMAFINANCEIRO_H

//instituicaofinanceira.h

#ifndef INSTITUICAOFINANCEIRA_H
#define INSTITUICAOFINANCEIRA_H
#include <iostream>
#include <vector>
#include "agencia.h"

using namespace std;

class InstituicaoFinanceira
{

protected:

    int cnpj;
    string nome;
    vector <Agencia> vetorAgencia;


public:

    InstituicaoFinanceira();


    void setVetorAgencia(int vetor, int codigo, int saldo);

    Agencia getVetorAgencia(int vetor);

};

#endif // INSTITUICAOFINANCEIRA_H

//banco.h

#ifndef BANCO_H
#define BANCO_H
#include "instituicaofinanceira.h"

class Banco: public InstituicaoFinanceira {

public:

    Banco();
    int getCnpj();
    string getNome();

};

#endif // BANCO_H

//agencia.h

#ifndef AGENCIA_H
#define AGENCIA_H

class Agencia
{

private:

    int codigo;
    int saldo;


public:

    //Métodos contrutores//

    Agencia();
    Agencia(int codigo, int Saldo);
    ~Agencia();

    //Métodos get//

    int getCodigo();
    int getSaldo();

};

#endif // AGENCIA_H

//sistemafinanceiro.cpp

#include "sistemafinanceiro.h"

SistemaFinanceiro::SistemaFinanceiro()
{

}

Banco SistemaFinanceiro::getBanco(){

    return banco;
}

//instituicaofinanceira.cpp

#include "instituicaofinanceira.h"
#include "agencia.h"
#include <iostream>

InstituicaoFinanceira::InstituicaoFinanceira()
{

}

Agencia InstituicaoFinanceira::getVetorAgencia(int vetor){

    return vetorAgencia[vetor];

}

void InstituicaoFinanceira::setVetorAgencia(int vetor, int codigo, int saldo){

    Agencia novaAgencia(codigo, saldo);

    this->vetorAgencia[vetor] = novaAgencia;

}

//banco.cpp

#include "banco.h"
#include "instituicaofinanceira.h"

Banco::Banco():InstituicaoFinanceira(){

    //Sim, o construtor padrão Banco() já constroi inicializando os atributos e redimensionando o vetorAgencia //
    this->cnpj = 123456789;
    this->nome = "Banco XYZ";
    this->vetorAgencia.resize(99);

}

int Banco::getCnpj(){

    return cnpj;
}

string Banco::getNome(){

    return nome;
}

//agencia.cpp

#include "agencia.h"

Agencia::Agencia()
{

}

Agencia::~Agencia(){

}

Agencia::Agencia(int codigo, int saldo){

    this->codigo = codigo;
    this->saldo = saldo;
}

int Agencia::getCodigo(){

    return codigo;
}


int Agencia::getSaldo(){

    return saldo;
}

//main.cpp

#include "sistemafinanceiro.h"

using namespace std;

int main(int argc, char *argv[])
{


    SistemaFinanceiro objSistemaFianceiro; //cria  um objeto SistemaFinanceiro//



cout<<objSistemaFianceiro.getBanco().getNome()<<"  "<<objSistemaFianceiro.getBanco().getVetorAgencia(13).getCodigo()<<"  "<<objSistemaFianceiro.getBanco().getVetorAgencia(13).getSaldo()<<endl; //imprime no console o codigo e o saldo iniciado pelo construtor padrão no vetor 13 de vetorAgencia;

objSistemaFianceiro.getBanco().setVetorAgencia(13,12121999,19999); // altera o vetor 13 de vetorAgencia//

cout<<objSistemaFianceiro.getBanco().getNome()<<"  "<<objSistemaFianceiro.getBanco().getVetorAgencia(13).getCodigo()<<"  "<<objSistemaFianceiro.getBanco().getVetorAgencia(13).getSaldo()<<endl; //imprime no console o codigo e o saldo após aplicar o método setVetorAgencia(): AQUI ESTÁ O ERRO!!!;

}
  • Just to clarify: when I use the setVetorAgencia(13,12121999,19999) method in main() it does not insert the new object in the vectorAgencia vector... I need help! Another thing, the main() neither prints in the console the object objSistemaFinanced already built with the instantiated initial values...

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.