Vinnaren i pepparkakshustävlingen!
2022-09-15, 08:36
  #1
Medlem
evil.drunk.clowns avatar
Har härdsmälta mellan öronen, stirrat för länge på skärmen. Men får några felmeddelanden; return value type does not match the function type och too few arguments in function call - lyckas inte just nu att lösa detta. Förslag?

Kod:
**main.cpp

#include <iostream>

#include "person.hpp"



int main(void) {
    /** Person class constructor. Two arguments: name and birthyear **/

    // Here objects are created from the class "Person"
    Person mrX("mr X", 2000);

    std::cout << mrX.GetName() << " is " << mrX.GetAge(2022) << " years old." << std::endl;
}

---------------------------------------------------------

**person.hpp

#ifndef CITIZENS_CPP_PERSON
#define CITIZENS_CPP_PERSON
#include <string>
// define your Person class here

class Person {         // Name of the class
    public:            // Access specifier
    
    void GetName(std::string name);
    void GetAge(int birthyear);
  
};

#endif

---------------------------------------------------------

**person.cpp

#include "person.hpp"
#include <iostream>
#include <string>

// define your Person class' functions here
void Person::GetName(std::string name) {
  return name;
}

void Person::GetAge(int birthyear) {
  return birthyear;
}
Citera
2022-09-15, 08:52
  #2
Medlem
Du kan inte returnera något när du använder typen void.
Citera
2022-09-15, 08:54
  #3
Medlem
GregerMedeltids avatar
Båda dina funktioner har returntype void (alltså inget) och du försöker returnera en std::string respektive int.

GetName som den används i main skall heller inte ha något argument, men du har definerat en funktion som tar en std::string som argument.

Det förklarar dina felmeddelanden, sedan ser jag en del problem kring själva logiken, men det låter jag dig fundera vidare på. Jag antar att det är någon form av introduktionskurs i programmering?
Citera
2022-09-15, 09:33
  #4
Medlem
evil.drunk.clowns avatar
Citat:
Ursprungligen postat av brykuk
Du kan inte returnera något när du använder typen void.

Tack, låter logiskt.
Citera
2022-09-15, 09:35
  #5
Medlem
evil.drunk.clowns avatar
Citat:
Ursprungligen postat av GregerMedeltid
Båda dina funktioner har returntype void (alltså inget) och du försöker returnera en std::string respektive int.

GetName som den används i main skall heller inte ha något argument, men du har definerat en funktion som tar en std::string som argument.

Det förklarar dina felmeddelanden, sedan ser jag en del problem kring själva logiken, men det låter jag dig fundera vidare på. Jag antar att det är någon form av introduktionskurs i programmering?

Jo precis, introduktionskurs. Känns utmanande men skam den som ger sig.
Citera
2022-09-15, 22:01
  #6
Medlem
Goto10s avatar
Du behöver också en constructor till Person-klassen med två parametrar, en string för namnet och en int för åldern. Klassen behöver också två (privata) variabler som håller namnet och åldern.

Jag hade nog läst lite mer i kurslitteraturen om jag var du.
Citera
2022-09-16, 06:37
  #7
Medlem
evil.drunk.clowns avatar
Citat:
Ursprungligen postat av Goto10
Du behöver också en constructor till Person-klassen med två parametrar, en string för namnet och en int för åldern. Klassen behöver också två (privata) variabler som håller namnet och åldern.

Jag hade nog läst lite mer i kurslitteraturen om jag var du.
Absolut ska det läsas men det är också kul att få feedback från erfarna personer, det skapar ett perspektiv till den statiska texten i just kurslitteraturen. Tack för ditt inlägg, läser just nu om constructors på w3schools.com (https://www.w3schools.com/cpp/cpp_constructors.asp).
Citera
2022-09-16, 20:06
  #8
Medlem
Goto10s avatar
Citat:
Ursprungligen postat av evil.drunk.clown
Absolut ska det läsas men det är också kul att få feedback från erfarna personer, det skapar ett perspektiv till den statiska texten i just kurslitteraturen. Tack för ditt inlägg, läser just nu om constructors på w3schools.com (https://www.w3schools.com/cpp/cpp_constructors.asp).
Lycka till! Hoppas att det går bra med kursen.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback