#ifndef PROPERTY_H
#define PROPERTY_H

#include <iostream>
#include <string>
#include <sstream>
#include "common.h"

BEGIN_ESTATE_NAMESPACE

/**
 * Represents a property for sale
 *
 */
class Property {

 public:

  static int getCount();

  Property(int price = 0); // default arg (implicit constructor)
  Property(const Property& old);

  virtual ~Property();

  void adjustPrice(int new_price);
  int getPrice();

  string toString();

 protected: // Note: we have changed access mode from private
  int  _id;
  int  _price;

 private:   // Will be inaccessible in derived classes 
  static int s_count;

};

END_ESTATE_NAMESPACE

#endif