Archief - Kan iemand mij helpen met een C++ oefening?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ptm

Legacy Member
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

Tyfius

Legacy Member
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 :p

killgore

Legacy Member
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.

SlasZ

Legacy Member
killgore zei:
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 :)

Grayfox

Legacy Member
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 :p

wlibaers

Legacy Member
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 :D
// 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= 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->getnaam());
// alternatief: maak de naam public
printf("naam beest %d: %s\n",i,beest->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? :wtf: Een dier heeft die eigenschappen, niet het dierenrijk.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan