Can I give new in one class within another’s builder?

Asked

Viewed 39 times

0

I have two classes: Trajectory and Trajectory. When I go new to Trajetoi inside the constructor in Trajeto the program does not compile. Someone can help me?

Builder of Trajetoi:

Trajetoi(string Origem, string Destino, int passageiros) {

    this->passageiros = passageiros;

    if ((Origem.compare("Cascavel") == 0 && Destino.compare("Guaraniaçu") == 0)) {
        custo = CUSTO_CASCAVEL_GUARANIACU;
        Distancia = 76.2;
        tempo = 10 + 60 * 1;
        this->lucro = custo * this->passageiros;

    }

    if ((Origem.compare("Guaraniaçu") == 0 && Destino.compare("Laranjeiras do Sul") == 0)) {
        custo = CUSTO_GUARANIACU_LARANJEIRAS_DO_SUL;
        Distancia = 67.4;
        tempo = 5 + 60 * 1;
        this->lucro = custo * this->passageiros;
    }
    if ((Origem.compare("Laranjeiras do Sul") == 0 && Destino.compare("Cantagalo") == 0)) {
        custo = CUSTO_LARANJEIRAS_DO_SUL_CANTAGALO;
        Distancia = 35.2;
        tempo = 32 + 60 * 0;
        this->lucro = custo * this->passageiros;
    }
    if ((Origem.compare("Cantagalo") == 0 && Destino.compare("Guarapuava") == 0)) {
        custo = CUSTO_CANTAGALO_GUARAPUAVA;
        Distancia = 80.4;
        tempo = 20 + 60 * 1;
        this->lucro = custo * this->passageiros;
    }
    if ((Origem.compare("Guarapuava") == 0 && Destino.compare("Irati") == 0)) {
        custo = CUSTO_GUARAPUAVA_IRATI;
        Distancia = 104.32;
        tempo = 32 + 60 * 1;
        this->lucro = custo * this->passageiros;
    }
    if ((Origem.compare("Irati") == 0 && Destino.compare("Palmeira") == 0)) {
        custo = CUSTO_IRATI_PALMEIRA;
        Distancia = 73.5;
        tempo = 25 + 60 * 1;
        this->lucro = custo * this->passageiros;

    }
    if ((Origem.compare("Palmeira") == 0 && Destino.compare("Curitiba") == 0)) {
        custo = CUSTO_PALMEIRA_CURITIBA;
        Distancia = 82.9;
        tempo = 31 + 60 * 1;
        this->lucro = custo * this->passageiros;
    }
}

Path Builder:

Trajeto(int n_Cascavel_Guaraniacu, int n_Guaraniacu_Laranjeiras_do_Sul, int n_Laranjeiras_do_Sul_Cantagalo, int n_Cantagalo_Guarapuava, int n_Guarapuava_Irati, int n_Irati_Palmeira, int n_Palmeira_Curitiba) {

        numero_de_passageiros_por_pedaco[0] = n_Cascavel_Guaraniacu;
        numero_de_passageiros_por_pedaco[1] = n_Guaraniacu_Laranjeiras_do_Sul;
        numero_de_passageiros_por_pedaco[2] = n_Laranjeiras_do_Sul_Cantagalo;
        numero_de_passageiros_por_pedaco[3] = n_Cantagalo_Guarapuava;
        numero_de_passageiros_por_pedaco[4] = n_Guarapuava_Irati;
        numero_de_passageiros_por_pedaco[5] = n_Irati_Palmeira;
        numero_de_passageiros_por_pedaco[6] = n_Palmeira_Curitiba;

        pedaco[0] = new("Cascavel", "Guaraniaçu", 1);
        pedaco[1] = new pedaco("Guaraniaçu", "Laranjeiras do Sul", 1);
        pedaco[2] = new pedaco("Laranjeiras do Sul", "Cantagalo", 1);
        pedaco[3] = new pedaco("Cantagalo", "Guarapuava", 1);
        pedaco[4] = new pedaco("Guarapuava", "Irati", 1);
        pedaco[5] = new pedaco("Irati", "Palmeira", 1);
        pedaco[6] = new pedaco("Palmeira", "Curitiba", 1);


    };

I was wondering if I could do that... get some fresh inside the builder. Error that appears is error in new.

1 answer

1


Yes, you can. The problem is that you are not specifying the type of data you want to allocate memory to.

Assuming

Trajetoi pedaco[7];

Supplement your code with the following

pedaco[0] = new Trajetoi("Cascavel", "Guaraniaçu", 1);
pedaco[1] = new Trajetoi("Guaraniaçu", "Laranjeiras do Sul", 1);
pedaco[2] = new Trajetoi("Laranjeiras do Sul", "Cantagalo", 1);
pedaco[3] = new Trajetoi("Cantagalo", "Guarapuava", 1);
pedaco[4] = new Trajetoi("Guarapuava", "Irati", 1);
pedaco[5] = new Trajetoi("Irati", "Palmeira", 1);
pedaco[6] = new Trajetoi("Palmeira", "Curitiba", 1);

Browser other questions tagged

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