[C++] class beginners vraag

Pagina: 1
Acties:
  • 670 views

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream.h>

class Bewoner 
{
      public:
      int pakleeftijd();
      void leeftijf(int jaar);
      private:
      int leeftijd; 
      
      };
      
      
int Bewoner::pakleeftijd() {
      return leeftijd;     
}
           
    void Bewoner::leeftijd(int jaar)
  {
     leeftijd = jaar;
  }

int main() {
 Bewoner persoon;
 persoon.leeftijf(19);
 cout << "Hou out is hij" << persoon.pakleeftijd();
 system("pause");
 return 0;   
}


Ik ben nu bezig met het leren van C++, allen ik heb hier wat gemaakt maar ik zie de fout niet.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Krijg je een foutmelding dan? Welke foutmelding?

En vertaal niet alles naar het Nederlands graag. Vertaal getters en setters niet naar pakkers en zetters ofzo ;(.

Verwijderd

Topicstarter
Afbeeldingslocatie: http://img686.imageshack.us/img686/5893/fout.png

Dat zou niet slim zijn want dan klopt er idd niks meer van :P

Edit: ow dat was een spel fout, maar nu heb ik nog meer meldingen, 1 sec

[ Voor 22% gewijzigd door Verwijderd op 24-12-2009 17:05 ]


  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
leeftijf != leeftijd

Niet je foutmelding hier dumpen, maar goed lezen wat er staat en dan kijken waar het aan kan liggen. De compiler liegt niet.

[ Voor 83% gewijzigd door Herko_ter_Horst op 24-12-2009 17:07 ]

"Any sufficiently advanced technology is indistinguishable from magic."


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

leeftijf -> leeftijd op regel 25

Wat gebruik je als IDE? Want dit moet gewoon gehighlighed worden normaal :)

Going for adventure, lots of sun and a convertible! | GMT-8


  • XiniX88
  • Registratie: December 2006
  • Laatst online: 11-09 06:58
Ik zie de fout:
"Hou out is hij"

moet toch echt zijn:
"Hoe oud is hij"

leeftijf on line 7 ook

[ Voor 86% gewijzigd door XiniX88 op 24-12-2009 17:11 ]


Verwijderd

Topicstarter
Nu de code zonder de spelfout:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream.h>

class Bewoner 
{
      public:
      int pakleeftijd();
      void leeftijd(int jaar);
      private:
      int leeftijd; 
      
      };
      
      
int Bewoner::pakleeftijd() {
      return leeftijd;     
}
           
    void Bewoner::leeftijd(int jaar)
  {
     leeftijd = jaar;
  }

int main() {
 Bewoner persoon;
 persoon.leeftijd(19);
 cout << "Hou out is hij" << persoon.pakleeftijd();
 system("pause");
 return 0;   
}


Afbeeldingslocatie: http://img163.imageshack.us/img163/5893/fout.png

Edit:
Ik gebruik
Dev-C++

  • XiniX88
  • Registratie: December 2006
  • Laatst online: 11-09 06:58
2 keer int leeftijd, void leeftijd(int), namen moeten UNIEK zijn! functies en variabelen, zover ik lees in je debug

http://www.google.nl/sear...gle+zoeken&meta=&aq=f&oq=
boeken over C++ of google, vind het wel erg basic

[ Voor 41% gewijzigd door XiniX88 op 24-12-2009 17:12 ]


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Jemig, er staat gewoon wat er aan de hand is. Verder is het ook wel handig als je direct de hele foutmelding post, in plaats van dat ene regeltje wat feitelijk niet de fout weergeeft.

XiniX88 geeft het probleem aan, je hebt 2x iets dat leeftijd heet. Dat staat ook in je foutmelding:
Declaration of `int Bewoner::leeftijd' conflicts with previous declaration of `void Bewoner::leeftijd(int)'
Het is een goed gebruik om voor je private variabelen een underscore (_) te zetten, daarmee voorkom je ook direct dit probleem.

Of hernoem je `void Bewoner::leeftijd(int)' naar `void Bewoner::zetleeftijd(int)'.

Verwijderd

Topicstarter
Goede top, Bedankt

Ik kreeg eerst allen die ene regel door de spelfout :P
daarom poste ik eerst die ene

Ik zie het nu ook meteen :P
Nu is hij goed:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream.h>

class Bewoner 
{
      public:
      int pakleeftijd();
      void leeftijd(int jaar);
      private:
      int leef_tijd; 
      
      };
      
      
int Bewoner::pakleeftijd() {
      return leef_tijd;     
}
           
    void Bewoner::leeftijd(int jaar)
  {
     leef_tijd = jaar;
  }

int main() {
 Bewoner persoon;
 persoon.leeftijd(19);
 cout << "Hou oud is hij" << persoon.pakleeftijd();
 system("pause");
 return 0;   
}

[ Voor 72% gewijzigd door Verwijderd op 24-12-2009 17:22 ]


  • HuHu
  • Registratie: Maart 2005
  • Niet online
Dat was niet wat ik zei, je zet de underscore voor de naam van je variabele. Dus zo:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream.h>

class Bewoner 
{
  public:
    int pakLeeftijd();
    void leeftijd(int jaar);

  private:
    int _leeftijd; 
};      
      
int Bewoner::pakLeeftijd() 
{
  return _leeftijd;     
}
           
void Bewoner::leeftijd(int jaar)
{
  _leeftijd = jaar;
}

int main(int argc, const char* argv[]) 
{
  Bewoner persoon;
  persoon.leeftijd(19);

  cout << "Hou oud is hij" << persoon.pakleeftijd();
  
  system("pause");
  return 0;   
}


Verder zou ik de code voor Bewoner splitsen in een H en CPP file en dan de H includen in dit bestand waar je main() staat.

Verwijderd

Topicstarter
Ow sorry,
Dat is nog een beter idee.

Dat heb ik nog niet gehad, maar dat zal ik zo wel krijgen :P
Allen ik zal hier nog even mee spelen zodat ik die stommen fouten niet meer maak.

En bedankt

  • JeromeB
  • Registratie: September 2003
  • Laatst online: 14-08 21:56

JeromeB

woei

Huhu, dan mag je ook even vermelden dat variabeles met een leading underscore in bepaalde gevallen gereserveerd zijn. Ikzelf gebruik liever een trailing underscore. Het lijkt me voor iedereen die C++ programmeert verstandig om even de regels op te zoeken omtrent het gebruik van underscores.

PC load letter? What the fuck does that mean?


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 16-09 22:28

Matis

Rubber Rocket

Het is toch geen static-class?

Derhalve dient de klasse toch gedefinieerd te worden met new Persoon()?

If money talks then I'm a mime
If time is money then I'm out of time


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:54

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dit is een C++ topic Matis. C++ kent het hele concept van "static classes" niet. En new gebruik je alleen bij pointers.

[ Voor 68% gewijzigd door .oisyn op 24-12-2009 18:32 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Matis
  • Registratie: Januari 2007
  • Laatst online: 16-09 22:28

Matis

Rubber Rocket

.oisyn schreef op donderdag 24 december 2009 @ 18:31:
Dit is een C++ topic Matis. C++ kent het hele concept van "static classes" niet. En new gebruik je alleen bij pointers.
Owja, my bad.

daarnaast zit er nog een foutje in de code van HuHu, het is niet pakleeftijd(), maar pakLeeftijd()

Edit; Ik had al veranderd :P Keek naar de verkeerde code :')

[ Voor 47% gewijzigd door Matis op 24-12-2009 19:12 ]

If money talks then I'm a mime
If time is money then I'm out of time


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:54

.oisyn

Moderator Devschuur®

Demotivational Speaker

Misschien moet je gewoon ophouden met reageren als je geen C++ snapt ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Lauwy, ik blijf niet bezig. Dit is je zoveelste topic waar je even wat code dumpt en roept dat het niet werkt. Je kan kiezen: ofwel je leest De Quickstart even door en houdt je daar in het vervolg ook eindelijk aan, ofwel je kan de volgende keer even met vakantie van dit forum.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.