add smart pointers
add polymorphism add destructor & copy constructor add pointer-pointer
This commit is contained in:
@@ -1,6 +1,35 @@
|
||||
#include "Monster.h"
|
||||
#include <iostream>
|
||||
|
||||
Monster::Monster()
|
||||
Monster::Monster() : _pWeapon(new Weapon())
|
||||
{
|
||||
//toString();
|
||||
|
||||
std::cout << "Monster::Monster()" << std::endl;
|
||||
}
|
||||
|
||||
Monster::Monster(const Monster& other)
|
||||
{
|
||||
// shallow copy
|
||||
this->_name = other._name;
|
||||
//this->_pWeapon = other._pWeapon;
|
||||
|
||||
// deep copy
|
||||
this->_pWeapon = new Weapon(*other._pWeapon);
|
||||
}
|
||||
|
||||
Monster::~Monster()
|
||||
{
|
||||
std::cout << "Monster::~Monster()" << std::endl;
|
||||
|
||||
if (_pWeapon != nullptr)
|
||||
{
|
||||
delete _pWeapon;
|
||||
_pWeapon = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
int Monster::Compare(ICompareable* pOther)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user