Hello! I need your help D:! I've been following my book on learning C++ and well I decided to make something simple but I'm stuck D:.
I have 3 files, 2 ".cpp" and 1 header file ".h". Here it is:
main.cpp
#include <iostream>
#include "functions.cpp"
using namespace std;
int main()
{
cout << "Hi";
char response;
cin >> response;
return 0;
}
functions.cpp
#include "monster.h"
Monster::SetHP(int HP)
{
itsHP = HP;
}
Monster::SetSP(int SP)
{
itsSP = SP;
}
Monster::GetHP()
{
return itsHP;
}
Monster::GetSP()
{
return itsSP;
}
monster.h
#include <iostream>
class Monster
{
private:
unsigned int itsHP;
unsigned int itsSP;
public:
void SetHP(int HP = 50);
void SetSP(int SP = 50);
unsigned int GetHP() const;
unsigned int GetSP() const;
};
When I try to build this, I get a huge load of errors. It'll be way too long to list here, and I'm fairly sure I probably have some tiny error somewhere...hopefully D:. In main I just put "Hi" because I wanted to see if it would build at least before I moved on to making what I wanted. So if anyone sees anything wrong and can help me out, I would love juu 4eva

!
Thanks

!
None.
Well, I'm a bit new to visual c++ as well, but if I recall correctly, you can't use include statements for .cpp files. Try changing the
#include "functions.cpp" to
#include "monster.h"Also:
Monster::SetHP(int HP)
{
itsHP = HP;
}
Monster::SetSP(int SP)
{
itsSP = SP;
}
Monster::GetHP()
{
return itsHP;
}
Monster::GetSP()
{
return itsSP;
}
You forgot to put the return type for these member functions. The first two functions should probably accept an unsigned int, so that the function won't accept a negative int, which will screw up the itsHP/itsSP variables from gaining a value. You also forgot the const for the last two. It should look like this:
void Monster::SetHP(unsigned int HP)
{
itsHP = HP;
}
void Monster::SetSP(unsigned int SP)
{
itsSP = SP;
}
unsigned int Monster::GetHP() const
{
return itsHP;
}
unsigned int Monster::GetSP() const
{
return itsSP;
}
Post has been edited 1 time(s), last time on Nov 4 2008, 3:14 pm by Oyen.
None.
Thank You for the reply! I never knew you couldn't include ".cpp". I changed functions.cpp to functions.h and did what you told me to. The huge load of errors went down to 2

.
...\functions.h(4) : error C2511: 'void Monster::SetHP(unsigned int)' : overloaded member function not found in 'Monster'
...\functions.h(8) : error C2511: 'void Monster::SetSP(unsigned int)' : overloaded member function not found in 'Monster'
I have no idea what this means o.o. If you could or someone else can help me again D:. <3!
None.
Either you're send an int to a method that doesn't have an int parameter, or your only calling one that needs one.
Thank You for the reply! I never knew you couldn't include ".cpp". I changed functions.cpp to functions.h and did what you told me to. The huge load of errors went down to 2

.
...\functions.h(4) : error C2511: 'void Monster::SetHP(unsigned int)' : overloaded member function not found in 'Monster'
...\functions.h(8) : error C2511: 'void Monster::SetSP(unsigned int)' : overloaded member function not found in 'Monster'
I have no idea what this means o.o. If you could or someone else can help me again D:. <3!
Oh, I forgot to mention that you need to change the declarations of those member functions in the header file to each have an unsigned int as a parameter instead of int.
In otherwords, change this:
public:
void SetHP(int HP = 50);
void SetSP(int SP = 50);
unsigned int GetHP() const;
unsigned int GetSP() const;
to this:
public:
void SetHP(unsigned int HP = 50);
void SetSP(unsigned int SP = 50);
unsigned int GetHP() const;
unsigned int GetSP() const;
None.
Either you're send an int to a method that doesn't have an int parameter, or your only calling one that needs one.
I have no idea what you just said D:!
Oh, I forgot to mention that you need to change the declarations of those member functions in the header file to each have an unsigned int as a parameter instead of int.
In otherwords, change this:
public:
void SetHP(int HP = 50);
void SetSP(int SP = 50);
unsigned int GetHP() const;
unsigned int GetSP() const;
to this:
public:
void SetHP(unsigned int HP = 50);
void SetSP(unsigned int SP = 50);
unsigned int GetHP() const;
unsigned int GetSP() const;
I had already done that before posting D:, same error o.o! Here I'll post the new updated files:
functions.h
#include "monster.h"
void Monster::SetHP(unsigned int HP)
{
itsHP = HP;
}
void Monster::SetSP(unsigned int SP)
{
itsSP = SP;
}
unsigned int Monster::GetHP() const
{
return itsHP;
}
unsigned int Monster::GetSP() const
{
return itsSP;
}
monster.h
class Monster
{
private:
unsigned int itsHP;
unsigned int itsSP;
public:
void SetHP(unsigned int HP = 50) const;
void SetSP(unsigned int SP = 50) const;
unsigned int GetHP() const;
unsigned int GetSP() const;
};
Thanks Again!
None.
public:
void SetHP(unsigned int HP = 50) const;
void SetSP(unsigned int SP = 50) const;
unsigned int GetHP() const;
unsigned int GetSP() const;
};
Take the const off the Set functions. It prevents the private variables from being changed.
If you are still having problems after doing that, I will copy your code into my own copy of visual c++ and try to get it to work.
Did you change the functions.cpp file to a .h file?
None.
Oooo! Thanks! I didn't notice I put const after that.
It works now!
None.