Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to Initialize objects with overloaded constructors using different files
    primarykey
    data
    text
    <p>I have tried literally everything to try to initialize the constructor so that when I create an object and pass the parameters in, it wont give me a crazy negative number, but it's still not working!</p> <p>To test that it works I used the getHp and attack function. So for example, if I say Hero Hi(100, 200, 300, 400), then I say <code>Hi.getHP()</code>, it should be 100(the first parameter)...</p> <pre><code>//main.cpp int main() { Hero Me(100,20,30,40);//Created using overloaded constructor Monsters m(100,16,18,20);//creates a monster object and uses overloaded constructor to initialize cout &lt;&lt; "\ntest1\n"; Me.getHp();//expecting 100 Me.getAttack();//expecting w.e is in parameters m.getHp();//expecting 100 m.getAttack();//same as hero cin.sync(); cin.get(); return 0; } </code></pre> <p>Here is the rest of my code, in case you need it. I also left out headers and such for simpler code.</p> <pre><code> //Characters.h class Characters { private: int level; int hp; int attack; int defense; protected: Characters(); // zero everything by default Characters(int, int, int, int); // populate explicitly ~Characters(); public: int getAttack() const { return attack; } int getDefense() const { return defense; } int getHp() const { return hp; } int getlevel() const { return level; } void setAttack(int); void setDefense(int); void setStrength(int); void setHp(int); void setlevel(int); void damageTaken(int); }; //Characters.cpp Characters::Characters() : level(0), hp(0), attack(0), defense(0) {} // //Characters::Characters(int seed) //{ // // NB. your code still doesn't initialize hp, strength etc. // // it also logs level before initializing it, so that will be garbage //} //Characters::Characters(int hit, int lvl, int att, int def) // : level(lvl), hp(hit), attack(att), defense(def){} Hero::Hero(int newHp, int newLevel, int newAttack, int newDef) : Characters(newHp, newLevel, newAttack, newDef) { cout &lt;&lt; "Hero created using Overloaded function!\n"; HeroHp = newHp; cout &lt;&lt; "Hp is: "&lt;&lt; HeroHp &lt;&lt; endl; Herolevel = newLevel; cout &lt;&lt; "level is: " &lt;&lt; Herolevel &lt;&lt; endl; HeroAttack = newAttack; cout &lt;&lt; "Attack is: " &lt;&lt; HeroAttack &lt;&lt; endl; HeroDefense = newDef; cout &lt;&lt; "Defense is: " &lt;&lt; HeroDefense &lt;&lt; endl; // logging goes here // note that you don't need HeroLevel etc. at all any more, just use level } Monsters::Monsters(int newHp, int newLevel, int newAttack, int newDef) : MonsterHp(newHp), Monsterlevel(newLevel), MonsterAttack(newAttack) , MonsterDefense(newDef)//initialize list { cout &lt;&lt; "Monster created using Overloaded function!\n"; MonsterHp = newHp; cout &lt;&lt; "Hp is: "&lt;&lt; MonsterHp &lt;&lt; endl; Monsterlevel = newLevel; cout &lt;&lt; "level is: " &lt;&lt; Monsterlevel &lt;&lt; endl; MonsterAttack = newAttack; cout &lt;&lt; "Attack is: " &lt;&lt; MonsterAttack &lt;&lt; endl; MonsterDefense = newDef; cout &lt;&lt; "Defense is: " &lt;&lt; MonsterDefense &lt;&lt; endl; } Characters::~Characters() { cout &lt;&lt; "Character has been destroyed!\n"; } void Characters::setAttack(int att) { attack = att; } void Characters::setDefense(int def) { defense = def; } void Characters::setHp(int health) { hp = health; } void Characters::damageTaken(int damage) { hp -= damage; } void Characters::setlevel(int lvl) { level = lvl; } //Monsters.h class Monsters: public Characters //Hero { private: int Monsterlevel; int MonsterHp; int MonsterStrength; int MonsterAttack; int MonsterDefense; public: Monsters(int, int, int, int); //explicit ~Monsters(); }; //Monsters.cpp Monsters::~Monsters() { cout &lt;&lt; "\nMonster Destroyed"; } //Hero.h class Hero: public Characters { private: int Herolevel; int HeroHp; int HeroStrength; int HeroAttack; int HeroDefense; public: //Hero(); Hero(int, int, int, int); ~Hero(); }; //Hero.cpp Hero::~Hero() { cout &lt;&lt; "Hero destroyed!\n"; } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload