#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <vector>

#include "./DividendStock.h"
#include "./Stock.h"

using namespace std;

// print info about a stock to cout followed by newline
// (same code does the "right thing" for subclass objects
//  by calling overridden Print function)
void PrintStock(Stock * s) {
  s->Print();
  cout << endl;
}

int main() {
  // create several investments
  Stock* stock = new Stock("MSFT");
  stock->Purchase(50, 10.00);
  stock->set_share_price(9.50);

  DividendStock* dividend = new DividendStock("INTC");
  dividend->Purchase(100, 20.00);
  dividend->PayDividend(5.00);
  dividend->set_share_price(30);

  // display info about each investment
  stock->Print();
  cout << endl;
  dividend->Print();
  cout << endl << endl;

  // print info again, but using a function
  PrintStock(stock);
  PrintStock(dividend);

  delete stock;
  delete dividend;
    
  return EXIT_SUCCESS;
}