/*
 * A Cat, which is a feline Pet with a name and number of lives remaining.
 * When a cat has a brush with badLuck, it loses a life.
 * 
 * Since a Cat extends Pet, it inherits all of Pet's public members, but
 * not any of its private members.
 */
#ifndef CAT_HPP
#define CAT_HPP

#include <string>
#include "Pet.hpp"

class Cat : public Pet {  //this is the C++ equiv to java's "extends Pet"
  int lives;
  
public:
  Cat(const std::string name, const std::string owner, int lives = 9);

  // Methods I want to override in Cat.  
  // Note that I have to declare them again here in Cat, since I'm
  // providing definitions in Cat.cpp
  std::string getOwner();
  std::string speak();
  
  void badLuck();
  int getLives();
};

#endif