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

C++ - Classes

Discussão em 'Programação' iniciada por metRo_, 5 de Abril de 2007. (Respostas: 9; Visualizações: 1500)

  1. metRo_

    metRo_ Power Member

    estou a fazer um exercicio sobre polinomios ( http://paginas.fe.up.pt/~lpreis/prog2_06_07/documents/Folha5.pdf Exercicio 2 desta ) e esta-me a dar um erro na compilação que na percebo, se alguem puder dar uma vista de olhos é coisa pouca....

    poli.cpp
    Código:
    #include "poli.h"
    
    CPoli::CPoli(int arg_grau):grau(arg_grau)
    {
        vpoli.resize(grau+1, 0.0);
    }
    
    CPoli::setCoef(int i, float coef)
    {
        vpoli[i]=coef;
    }
    
    poli.h
    Código:
    #ifndef _poli_H_
    #define _poli_H_
    
    #include <vector>
    
    using namespace std;
    
    class CPoli
    {
        public:
            CPoli(int);
            setCoef(int,float);
            
        private:
            const int grau;
            vector<float> vpoli;
    }
    #endif
    
    teste.cpp
    Código:
    #include <iostream.h>
    #include "poli.h"
    
    int main()
    {
        cout << "Iniciando introducao de polinomios!";
        cout << "Introduza o grau: ";
        int grau,x;
        float coef;
        cin >> grau;
        x=grau;
        CPoli poli(grau);
        for(int i=0;i<=grau;i++)
        {
            cout << "Introduza o coeficiente de grau" << x;
            cin >> coef;
            poli.setCoef(x,coef);
            x--;
        }
        
        return 0;
            
    }
    http://metroexp.com.sapo.pt/poli.rar
     
  2. alph

    alph Power Member

    Mete ";" depois da class.

    Código:
    class CPoli
    {
        public:
            CPoli(int);
            setCoef(int,float);
            
        private:
            const int grau;
            vector<float> vpoli;
    }[B];[/B]
     
  3. metRo_

    metRo_ Power Member

    Última edição pelo moderador: 5 de Abril de 2007
  4. nao te falta aí um void?

    nao tinha visto a segunda pic, mas no teu ficheiro da class tens lá o construtor e dp um método que tem q retorna alguma coisa ou entao é void!!!

    tenta lá assim :P
     
    Última edição: 5 de Abril de 2007
  5. metRo_

    metRo_ Power Member

    Estás a dizer assim!?

    Código:
    class CPoli
    {
        public:
            CPoli(int);
            void setCoef(int,float);
            
        private:
            const int grau;
            vector<float> vpoli;
    }[B];[/B]
    Eu acho que percebi o que dissest mas não estou a ver como corrigir, se era aquilo que estavas a dizer não dá... :s
     
  6. HecKel

    HecKel The WORM

    Boas!

    Não tenho bem a certeza, mas julgo que na declaração da classe não basta o tipo dos métodos, mas também tens de definir o nome da variável.

    Código:
    class CPoli
    {
        public:
            CPoli(int VARIÁVEL);
            void setCoef(int VARIÁVEL ,float VARIÁVEL);
            
        private:
            const int grau;
            vector<float> vpoli;
    }[B];[/B]
    Tenta isso, sff.

    abraços, HecKel
     
  7. legerdemain

    legerdemain Power Member

    na declaração da classe ele pode meter só os tipos, não é obrigatório meter os nomes

    na 2º pic, ele está a definir o método setCoef e não tem o valor de retorno daquilo, o mesmo para o .h onde está a definir a classe

    no .h é como disseste - void setCoef(int,float); - mas no .cpp também tens que meter "void CPoli::blah blah"

    edit: e no main, que raio é aquilo de "CPoli poli(grau)" ? :p


    abraços, presty
     
    Última edição: 5 de Abril de 2007
  8. metRo_

    metRo_ Power Member

    HecKel - Tal como o legerdemain disse: "na declaração da classe ele pode meter só os tipos, não é obrigatório meter os nomes" esta correcto isto.. obrigado na mesma.

    legerdemain - parece que nao resolveu muito, ja deu outros erros agora, esta ai os prints:

    http://metroexp.com.sapo.pt/error3.png


    Em relação aquilo do main, tambem nao percebi, mas na altura foi com ajuda do prof, mas acho que "CPoli poli(grau);" esta a criar a variavel poli do tipo Cpoli...
     
    Última edição pelo moderador: 5 de Abril de 2007
  9. CPoli poli(grau): isto quer dizer que na declaração estás a invocar o construtor com parametros da classe CPoli ;) ou seja, estas a chamar CPoli(int)

    o objecto vpoli tem q ser criado... ele ta com 0 elementos no inicio, mas n tem a partida nenhum tamanho...

    segundo o gcc os erros estao no nos metodos da classe, tou a tentar ver a classe vector da STL lool
     
  10. Rui_Carlos

    Rui_Carlos 1st Folding then Sex

    no gcc não me está a dar erro nenhum, nem sequer warnings (mesmo com a opção -Wall)...
     

Partilhar esta Página