#ifndef _LEC17_DIVIDENDSTOCK_H_
#define _LEC17_DIVIDENDSTOCK_H_

#include <string>

using namespace std;

// Represents a stock purchase that also pays dividends.
class DividendStock {
 public:
  DividendStock(string symbol, double share_price = 0.0);

  // DividendStock's mutator and accessor methods.
  void   PayDividend(double amount_per_share);
  void   Purchase(int shares, double share_price);
  string get_symbol() const;
  int    get_shares() const;
  double get_share_price() const;
  void   set_share_price(double share_price);

  // DividentStock's "investment" interface.
  double GetCost() const;
  double GetMarketValue() const;
  double GetProfit() const;
  double GetDividends() const;

  // Print out the DividendStock information.
  void Print() const;

 private:
  string symbol_;
  int    shares_;
  double cost_;
  double share_price_;
  double dividends_;
};

#endif  // LEC17_DIVIDEND_STOCK_