1. #1

    Registered
    07/12/02
    Posts
    13
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    Kan iemand mij helpen met een C++ oefening?

    Hallo, ik weet niet of ik hier deze thread mag zetten maar het heeft toch ook een beetje te maken met programmeren.
    Ik moet 2 oefeningen maken voor het school met C++ maar het lukt niet zo goed en ik kom een beetje raad vragen.
    Weet iemand hoe je de volgende oefeningen kan maken?

    1: Maak een class object, de class heeft 4 private members, 3 constructors en 5 public functies (opvullen, tonen inhoud, telop enz eigen keuze).
    Gebruik het volledige opbject door gebruik te maken van een instantie waarin je alle elementen van de class aanroept (alles laten zien op het scherm).
    Er mogen geen cin of cout functie zijn.

    2. Maak een class opbject. Het object heeft als naam DIERENRIJK. Het heeft een constructor met 2 argumenten: het 1e is type dier (slangen, vogels, spinnen, wormen, tijgers) en het 2e is mannelijk of vrouwelijk.
    Het object heeft een functie dat zegt welk geslacht het dier is. dus M of V (public) Geslacht per dier is naar eigen keuze.
    Tis al zoiets: Dierenrijk instantie (2,1)
    char* spinnen, vrouw

    Dit zijn de 2 oefeningen. Graag hulp aub!!!


    Groetjes
    no votes  

  2. #2
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    Alsde 2 lessen opgelet hebt dan is da zo simpel als iets...
    Code:
    class iets {
    private:
      4 variabelen;
    public:
      1ste constructor me attributen;
      2de constructor me minder attributen;
      3de constructor me nog minder atributen;
    
      public functions;
    };
    2de is dezelfde manier...

    ma ik denk ni da der iemand die oefeningen voor u gaat maken ze
    Vanaf nu gaan we verder op BeyondGaming!
    In deze thread wordt uitgelegd hoe je jouw account kan migreren.
    no votes  

  3. #3

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    2°:
    Code:
    class dierenrijk
    {
        private:
        char* m_naam;
        char m_mannelijk;
        public:
        dierenrijk(char* naam, char geslacht);
        char get_geslacht();
    };
    char dierenrijk::get_geslacht()
    {
        return this->m_geslacht
    }
    dierenrijk::dierenrijk(char* naam, char geslacht)
    {
        this->m_naam = naam;
        this->m_geslacht = geslacht;
    }
    en dit was echt wel simpel imho.

    my bad.
    Last edited by killgore; 20-05-2004 at 21:29.
    no votes  

  4. #4
    SlasZ's Avatar
    Registered
    10/01/03
    Location
    De Panne / Leuven
    Posts
    153
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    2°:

    de keuze voor bool als switcher voor mannelijk vrouwlijk is omdat ik het anders a waste of space vind .

    toch niet, een bool gebruikt evenveel geheugenruimte als een char, nl 8 bits
    no votes  

  5. #5

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by SlasZ
    This quote is hidden because you are ignoring this member. Show
    toch niet, een bool gebruikt evenveel geheugenruimte als een char, nl 8 bits
    my bad, edited
    no votes  

  6. #6
    Grayfox's Avatar
    Registered
    17/07/02
    Location
    Knokke
    Posts
    2,562
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/1
    da wist ik ook ni da een char evenveel inneemt als een bool, is wel logisch natuurlijk

    ma, voorwa gebruik je nu een char ipv een bool? das toch superonduidelijk?
    kzou toch wel een bool gebruiken hoor, en bools gebruiken heeft ook veel nut als ge met flags gaat werken enzo, dan ga je wel minder space wasten
    [Rasta]Grayfox
    no votes  

  7. #7
    wlibaers's Avatar
    Registered
    18/07/02
    Posts
    2,279
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Je kan net zo goed een enum gebruiken, want door alignment zal die bool of char toch 3 bytes extra gebruiken.

    Huidige layout:
    char* : 4 bytes (8 op een 64-bit systeem)
    char : 1 byte
    padding: 3 bytes

    Maakt dus echt niet uit of je daar nu een bool, char, enum of int voor gebruikt.

    De char* opslaan in plaats van voor de class een eigen kopie te maken is trouwens wel riskant als je de invoerstrings later nog verandert.

    // hier moet nog wat rommel rond om het te kunnen compileren
    // de code zelf is ook maar rommel
    // lever dit in op school en je buist
    // heb al meer dan een jaar geen lijn C++ meer geschreven, schiet me niet af als er stommiteiten in staan
    // extra oefening:
    // 1: los het duidelijke probleem op
    // 2: vind de buffer overflow bug (niet moeilijk was te lui om het alternatief te gebruiken)
    char naam[20];
    dierenrijk *beest[2];
    for(int i=0;i<2;i++) {
    printf("naam beest %d?", i);
    gets(naam);
    beest[i]= new dierenrijk(naam, 'm');
    }
    for(int i=0;i<2;i++) {
    // veronderstel dat nog iemand zo vriendelijk is de naam toegankelijk te maken
    printf("naam beest %d: %s"\n,i,beest[i]->getnaam());
    // alternatief: maak de naam public
    printf("naam beest %d: %s\n",i,beest[i]->m_naam);
    }

    Trouwens, wie heeft die achterlijke oefening opgesteld? Geen cin/cout? Dus de uitvoer op de C manier? En zo simplistisch, gewoon belachelijk. Een dierenrijk dat als eigenschappen naam en geslacht heeft? Een dier heeft die eigenschappen, niet het dierenrijk.
    "If you have a right to respect, that means other people don't have a right to their own opinions."
    Thomas Sowell
    no votes  

  8. #8
    UniKorn's Avatar
    Registered
    20/09/02
    Location
    Leuven
    Posts
    460
    iTrader
    0
    Mentioned
    0 Post(s)
    Uzghul, 70 Rogue; Tankghul, 70 Warrior; Uziuz, 70 Paladin; Skinny, 70 Priest; Darkrune, 70 Warlock; UniKorn, 60 Druid; Martinuz, 59 Hunter; Marceluz, 59 Mage; Flexy, 30 Rogue;
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in