I'll mark where errors are coming up..
Code:
#include<iostream>
#include<string>
#include<cstdlib>
#include<ctime>
using namespace std;
void Seed()
{
srand(time(0));
}
int GetRandNum(int max)
{
return rand() % max + 1;
}
class Soldier
{
public:
Soldier(string input);
int March();
int Fire();
void Rest();
void LoseStamina(int distance);
void Reload();
void LoseAmmo(int shots);
void DisplayStats();
protected:
string m_name;
int m_ammo;
int m_maxAmmo;
int m_stamina;
int m_maxStamina;
};
Soldier::Soldier(string input)
{
m_name = input;
m_stamina = 50;
m_maxStamina = m_stamina;
m_ammo = 20;
m_maxAmmo = m_ammo;
}
int Soldier::March()
{
return GetRandNum(10);
}
int Soldier::Fire()
{
return GetRandNum(4);
}
void Soldier::Rest()
{
m_stamina = m_maxStamina;
}
void Soldier::Reload()
{
m_ammo = m_maxAmmo;
}
void Soldier::LoseStamina(int distance)
{
m_stamina -= distance;
cout << m_name << " you marched " << distance << " miles, you lose " << distance << " stamina " << endl;
if(m_stamina <= 0)
cout << m_name << " can't move " << endl;
}
void Soldier::LoseAmmo(int shots)
{
m_ammo -= shots;
cout << m_name << " you shot " << shots << " bullets " << endl;
if (m_ammo <=0)
cout << m_name << " is out of ammo " << endl;
}
void Soldier::DisplayStats()
{
cout << "Name: " << m_name << endl;
cout << "Stamina: " << m_stamina << "/" << m_maxStamina << endl;
cout << "Ammo: " << m_ammo << "/" << m_maxAmmo << endl;
}
class Scout : public Soldier
{
public:
Scout(string input);
void LoseStamina(int distance);
private:
int m_stamina;
int m_maxStamina;
int m_ammo;
int m_maxAmmo;
};
Scout::Scout(string input)
{ right here it's saying no matching function to call to Soldier:: Solider
m_name = input;
m_stamina = 100;
m_maxStamina = m_stamina;
m_ammo = 5;
m_maxAmmo = m_ammo;
}
void Scout::LoseStamina(int distance); void lose stam outside of class is not definition
{
m_stamina -= distance/2;
cout << m_name << ", you lost " << distance << " stamina " << endl;
if(m_stamina <= 0)
cout << m_name << " can't move " << endl;
}
class Machiner : public soldier
{
public:
Machiner();
void LoseStamina(int distance);
void LoseAmmo(int shots);
private:
int m_stamina;
int m_maxStamina;
int m_ammo;
int m_maxAmmo;
};
Machiner::Machiner()
{
m_stamina = 25;
m_maxStamina = m_stamina;
m_ammo = 100;
m_maxAmmo = m_ammo;
}
void Machiner::LoseStamina(int distance);
{
m_stamina -= distance * 2;
cout << m_name << ", you lost " << distance << " stamina " << endl;
if(m_stamina <= 0)
cout << m_name << " can't move " << endl;
}
void Machiner::LoseAmmo(int shots);
{
m_ammo -= shots * 4;
cout << m_name << " you shot " << shots << " bullets " << endl;
if (m_ammo <=0)
cout << m_name << " is out of ammo " << endl;
}
class Sniper : public Soldier
{
public:
Sniper();
void LoseAmmo(int shots);
}
Sniper::Sniper()
{
};
void Sniper::LoseAmmo(int shots);
{
m_ammo - 1;
cout << m_name << " you shot " << shots << " bullets " << endl;
if (m_ammo <=0)
cout << m_name << " is out of ammo " << endl;
}