1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Tabela em C++

Discussão em 'Programação' iniciada por El_Comadreja, 22 de Junho de 2008. (Respostas: 0; Visualizações: 1004)

  1. Antes de mais boa noite a todos
    Desculpem-me por passar já ao concreto mas nunca fui muito bom em apresentações..Eu tenho o seguinte programa até agora escrito:

    ficheiro .h
    Código:
    class Tabela
    {
    private:
        double *elems;
        int num_elems;
    ...
    public:
        Tabela() {num_elems=0; elems=NULL;}
        Tabela(int n);
        Tabela(Tabela & tab);
        ~Tabela() {delete[] elems;}
    ...
    }
    ficheiro.cpp
    Código:
    #include<stdio.h>
    #include "Tabela.h"
    
    Tabela::Tabela(int n)
    {
        int i;
        num_elems = n;
        elems = new double[n];
        for(i=0;i<n;i++){elems[i] = 0;}
    }
    
    Tabela::Tabela(Tabela &tab)
    {
        int i;
        num_elems = tab.num_elems;
        elems = new double[num_elems];
        for(i=0;i<num_elems;i++){elems[i]=tab.elems[i];}
    }
    ...
    void main()
    {
        int op, n;
        double v;
        Tabela tab1(0);
    ...
    switch(op)
            {
                case 1: printf("Quantos elementos terá a tabela?\n-> ");
                        scanf("%d", &n);
                        tab1.~Tabela();
                        Tabela tab1(n);
                        printf("\n\nSucesso!");
                        break;
                case 2: if(tab1.existe()==0) break; //a funçao existe() vê se o apontador elems e diferente de 0
                        printf("Que elemento deseja inserir?\n-> ");
                        scanf("%lf", &v);
                        printf("Em que posição? -> ");
                        scanf("%d", &n);
                        tab1.inserirElemento(n,v);
                        break;
    ...
               }
    }
    A minha duvida e um pouco complicada de explicar mas ca vai, espero que me entendam.. Eu apenas vou precisar de trabalhar com um elemento Tabela de cada vez.e eu sei que nao posso re-inicializar um elemento,muito menos dentro de um switch (penso eu..so um momento..yeap,da erro), como ali tenho na opçao 1 do switch portanto gostava que alguém me ajudasse, me desse alguma dica sobre como atribuir uma nova dimensao aquele elemento tab1 (eu inicializei-o a 0 pois para as outras opçoes do switch, como a 2, preciso de verificar se se esta a trabalhar com alguma tabela diferente de 0). Como podem ver eu ja tentei usar o destrutor e depois inicia-la de novo mas da-me sempre o erro de que a inicialização e ignorada por estar dentro de uma das opçoes do switch..se alguem tiver alguma ideia agradecia, seja usar o construtor Tabela(Tabela &tab) de alguma forma,seja o que for, eu ja estou sem ideias..

    E quero tambem apenas dizer que fiquei muito surpreendido (pela positiva) por encontrar um forum desta natureza em portugues, util realmente.

    -----Já não é preciso-----

    PS. eu omiti a maior parte do programa pois apenas contém outras funçoes nao necessarias ah resoluçao desta duvida,penso eu
     
    Última edição: 2 de Julho de 2008

Partilhar esta Página