I am making a text based dinosaur fighting game and I have different dinosaurs and guns and I used virtual to create these things but I am unsure if that's necessary or if it is, am I using it correctly.
Code:
#include <iostream>
#include <string>
#include <fstream>
#include <map>
class Player
{
public:
Player() = default;
~Player() = default;
void SavePlayerData();
private:
std::string playerName = "Default_Player";
float playerHealth = 100;
void RestorePlayerData();
};
void Player::SavePlayerData()
{
std::ofstream Save("PlayerData.txt");
}
class Weapon
{
public:
Weapon() = default;
~Weapon() = default;
virtual void SetWeaponName(std::string weapName){ weaponName = weapName; }
std::string ReturnWeaponName() const { return weaponName; }
virtual void SetWeaponDamage(float weapDamage){ weaponDamage = weapDamage; }
float ReturnWeaponDamage() const { return weaponDamage; }
private:
std::string weaponName = "Default_Weapon";
float weaponDamage = 0;
};
class Handgun : public Weapon
{
};
class Dinosaur
{
public:
Dinosaur() = default;
~Dinosaur() = default;
void SaveDinosaurData();
virtual void SetDinosaurName(std::string name){ dinosaurName = name; };
std::string ReturnDinosaurName() const { return dinosaurName; };
virtual void SetDinosaurAttackPower(){};
float ReturnDinosaurAttackPower() const;
virtual void SetDinosaurAttackName(){};
std::string ReturnDinosaurAttackName() const;
virtual void SetDinosaurHealth(){};
float ReturnDinosaurHealth() const;
private:
float dinosaurHealth = 100;
float dinosaurAttackPower = 0;
std::string dinosaurAttackName = "Default";
std::string dinosaurName = "Default_Dinosaur";
void RestoreDinosaurData();
};
class Utahraptor : public Dinosaur
{
public:
Utahraptor();
~Utahraptor();
};
class Allosaurus : public Dinosaur
{
public:
Allosaurus() = default;
~Allosaurus();
};
void Fight();
void ReturningPlayer();
void NewPlayer();
int main()
{
int choice = 0;
Dinosaur *dino = new Allosaurus;
dino->SetDinosaurName("Allosaurus");
Weapon *weap = new Handgun;
weap->SetWeaponName("Handgun");
std::cout << dino->ReturnDinosaurName() << std::endl;
std::cout << weap->ReturnWeaponName() << std::endl;
/*
while(choice != -1)
{
std::cout << "Welcome, are you a new player or are you a returning one?\n" << std::endl;
std::cout << "1) I'm New" << std::endl;
std::cout << "2) I'm Returning" << std::endl;
std::cin >> choice;
switch(choice)
{
case 1:
NewPlayer();
break;
case 2:
ReturningPlayer();
break;
default:
std::cout << "Incorrect Choice!" << std::endl;
}
}
*/
return 0;
}
void ReturningPlayer()
{
}
void NewPlayer()
{
}
void Fight()
{
}