Breuk klasse, rare errors

Status
Niet open voor verdere reacties.

retoke

Gebruiker
Lid geworden
17 aug 2007
Berichten
16
Ik ben bezig met een breuk klasse te schrijven in C++ maar ik krijg allerhande errors, heb al gezocht op google met deze errors, voorbeelden van klassen opgezocht, ik heb ook een boek van C++ maar ik krijg het niet opgelost.

klasse:

Code:
#include <iostream>
#include <cmath>
using namespace std;


    class Breuk
    {
      private:
         int teller;
         int noemer;

      public:
       Breuk (int t,int n)
       {
                   teller = t;
                   noemer = n;
                   
       }
       Breuk()
       {
              
       }
              
        Breuk optellen(Breuk b)
        {
            Breuk som;
            if (noemer == b.getNoemer())
            {
                som.setTeller(this.getTeller() + b.getTeller());
                som.setNoemer(this.getNoemer());
            }
            else
            {
                som.setNoemer(this.getNoemer() * b.getNoemer());
                som.setTeller((this.getTeller() * b.getNoemer()) + (b.getTeller()* this.getNoemer()));
            }
            return som;
        }
          
        
        int getTeller()
        {
            return teller;
        }
        
        int setTeller(int teller)
        {
            this.teller = teller;
        }

        int getNoemer()
        {
            return noemer;
        }

         void setNoemer(int noemer)
        {
            this.noemer = noemer;
        }
        
       
        };


Ik krijg volgende errors:

J:\C++\hoofdst4oef6.cpp In member function `Breuk Breuk::optellen(Breuk)':
31 J:\C++\hoofdst4oef6.cpp `getTeller' is not a type
31 J:\C++\hoofdst4oef6.cpp request for member of non-aggregate type before '(' token
32 J:\C++\hoofdst4oef6.cpp `getNoemer' is not a type

enzoverder, als compiler gebruik ik Dev C++.
Ik besef dat ik waarschijnlijk heel domme dingen gedaan heb, maar ik heb al veel geprobeerd en ben ten einde raad.
Dank bij voorbaat.
 
Ik weet niet meer precies hoe het bij C++ zit, maar moet je ipv this. niet this-> gebruiken?
 
Ah ja idd, dom van mij, ik zit met java nog in mijn hoofd en totaal niet aan gedacht.
Hartelijk dank :)

Die errors zijn weg nu, ik kreeg ook de volgende error.

[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status

Daarna heb ik een main functie toegevoegd en ze was weg, is het zo dat bij elke C++ klasse een main methode moet zitten?
 
Laatst bewerkt:
Edit: Net te laat :P

Als je een .cpp file wilt compilen moet je denk ik altijd ergens in je project een main() of WinMain() of een ander entry point voor je programma hebben.
Als je het als header compilet denk ik niet.. Maar ik weet het allemaal niet heel zeker :P
 
Laatst bewerkt:
kan je ook de code van hoofdst4oef6.cpp eens posten? dan kan ik hier testen, met dezelfde code. (in Dev-Cpp)

--Johan
 
De code staat hierboven, Johantrax, maar ik zal de juiste versie ook nog eens posten.
@ArjanB: Ah ok in het project moet dus een main zitten, dat lijkt me idd logischer :p

Code:
#include <iostream>
#include <cmath>
using namespace std;


    class Breuk
    {
      private:
         int teller;
         int noemer;

      public:
       Breuk (int t,int n)
       {
                   teller = t;
                   noemer = n;
                   
       }
       Breuk()
       {
              
       }
      
             
        
        Breuk optellen(Breuk b)
        {
            Breuk som;
            if (noemer == b.getNoemer())
            {
                som.setTeller(this->getTeller() + b.getTeller());
                som.setNoemer(this->getNoemer());
            }
            else
            {
                som.setNoemer(this->getNoemer() * b.getNoemer());
                som.setTeller((this->getTeller() * b.getNoemer()) + (b.getTeller()* this->getNoemer()));
            }
            return som;
        }
        
       
        Breuk aftrekken(Breuk b)
        {
            Breuk verschil;
            if (this->noemer == b.noemer)
            {
                verschil.teller = this->teller - b.teller;
                verschil.noemer = this->noemer;
            }
            else
            {
                verschil.noemer = this->noemer * b.noemer;
                verschil.teller = (this->teller * b.noemer) - (b.teller * this->noemer);
            }
            return verschil;
        }
        
        Breuk vermenigvuldigen(Breuk b)
        {
            Breuk product;
            product.noemer = this->noemer * b.noemer;
            product.teller = this->teller * b.teller;
            return product;
        }
        
        Breuk delen(Breuk b)
        {
            Breuk quotient;
            quotient.noemer = this->noemer * b.teller;
            quotient.teller = this->teller * b.noemer;
            return quotient;
        }
        
        void vereenvoudig()
        {
            int a, b;
            a = getTeller();
            b = getNoemer();

            
            if (a < b)
            {
                int temp;
                temp = a;
                a = b;
                b = temp;
            }

            do
            {
                int rest;
                rest = a % b;
                a = b;
                b = rest;
            }
            while (b > 0);

            setTeller(getTeller() / a);
            setNoemer(getNoemer() / a);
        }
        
        string toString()
        {
            return (teller + "/" + noemer);
        } 
        
        int getTeller()
        {
            return teller;
        }
        
        int setTeller(int teller)
        {
            this->teller = teller;
        }

        int getNoemer()
        {
            return noemer;
        }

         void setNoemer(int noemer)
        {
            this->noemer = noemer;
        }
        
        
        
      
        };
            int main(){
            }


Dit heb ik gecompileerd en werk goed, allemaal bedankt!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan