// main.cpp
#include <iostream>
#include <string.h>
#include "ship.h"
using namespace std;
int main()
{
Ship artemis("artemis");
cout << artemis.getEngines() << endl;
// Success, the program has exited without error.
return 0;
}
//ship.cpp
#include "ship.h"
using namespace std;
// Constructors
/* auto name, auto power */
Ship::Ship() {
setName("Artemis");
setShields(50);
setWeapons(0);
setLifeSupport(20);
setEngines(20);
setHyperdrive(10);
}
/* manual name, auto power */
Ship::Ship(string strNameCon) {
setName(strNameCon);
setShields(50);
setWeapons(0);
setLifeSupport(20);
setEngines(20);
setHyperdrive(10);
}
/* manual name, manual power */
Ship::Ship(string strNameCon, unsigned int nShieldsCon, unsigned int nWeaponsCon, unsigned int nLifeSupportCon, unsigned int nEnginesCon, unsigned int nHyperdriveCon) {
if (!(nShieldsCon + nWeaponsCon + nLifeSupportCon + nEnginesCon + nHyperdriveCon > 100)) {
setName(strNameCon);
setShields(nShieldsCon);
setWeapons(nWeaponsCon);
setLifeSupport(nLifeSupportCon);
setEngines(nEnginesCon);
setHyperdrive(nHyperdriveCon);
} else {
cerr << "Power overload. Power values may not add to more than 100."
}
}
// Destructor
Ship::~Ship() {
delete nShields, nWeapons, nLifeSupport, nEngines, nHyperdrive, strName;
}
// Gets and Sets
void Ship::setShields(unsigned int val) {
if ( !(val + nWeapons + nLifeSupport + nEngines + nHyperdrive > 100) ) {
nShields = val;
} else { cerr << "Power overload. Power values may not add to more than 100." }
}
unsigned int Ship::getShields() {
return nShields;
}
void Ship::setWeapons(unsigned int val) {
if ( !(nShields + val + nLifeSupport + nEngines + nHyperdrive > 100) ) {
nWeapons = val;
} else { cerr << "Power overload. Power values may not add to more than 100." }
}
unsigned int Ship::getWeapons() {
return nWeapons;
}
void Ship::setLifeSupport(unsigned int val) {
if ( !(nShields + nWeapons + val + nEngines + nHyperdrive > 100) ) {
nLifeSupport = val;
} else { cerr << "Power overload. Power values may not add to more than 100." }
}
unsigned int Ship::getLifeSupport() {
return nLifeSupport;
}
void Ship::setEngines(unsigned int val) {
if ( !(nShields + nWeapons + nLifeSupport + val + nHyperdrive > 100) ) {
nEngines = val;
} else { cerr << "Power overload. Power values may not add to more than 100." }
}
unsigned int Ship::getEngines() {
return nEngines;
}
void Ship::setHyperdrive(unsigned int val) {
if ( !(nShields + nWeapons + nLifeSupport + nEngines + val > 100) ) {
nHyperdrive = val;
} else { cerr << "Power overload. Power values may not add to more than 100." }
}
unsigned int Ship::getHyperdrive() {
return nHyperdrive;
}
void Ship::setName(string val) {
strName = val;
}
string Ship::getName() {
return strName;
}
//ship.h
#ifndef SHIP_H
#define SHIP_H
using namespace std;
class Ship {
private:
unsigned int nShields;
unsigned int nWeapons;
unsigned int nLifeSupport;
unsigned int nEngines;
unsigned int nHyperdrive;
string strName;
protected:
public:
/* auto name, auto power */
Ship();
/* manual name, auto power */
Ship(string strNameCon);
/* manual name, manual power */
Ship(string strNameCon, unsigned int nShieldsCon, unsigned int nWeaponsCon, unsigned int nLifeSupportCon, unsigned int nEnginesCon, unsigned int nHyperdriveCon);
void setShields(unsigned int val);
unsigned int getShields();
void setWeapons(unsigned int val);
unsigned int getWeapons();
void setLifeSupport(unsigned int val);
unsigned int getLifeSupport();
void setEngines(unsigned int val);
unsigned int getEngines();
void setHyperdrive(unsigned int val);
unsigned int getHyperdrive();
void setName(string val);
unsigned int getName();
};
#endif