CashFlow Class Referenceabstract

Base class for cash flows. More...

`#include <ql/cashflow.hpp>`

Inheritance diagram for CashFlow:
[legend]

## Public Member Functions

Event interface
virtual Date | date () const =0
bool | hasOccurred (const Date &refDate=Date(), boost::optional< bool > includeRefDate=boost::none) const
| returns true if an event has already occurred before a date More...
CashFlow interface
virtual Real | amount () const =0
| returns the amount of the cash flow More...
virtual Date | exCouponDate () const
| returns the date that the cash flow trades exCoupon
bool | tradingExCoupon (const Date &refDate=Date()) const
| returns true if the cashflow is trading ex-coupon on the refDate
Visitability
virtual void | accept (AcyclicVisitor &)
Event interface
Visitability
Public Member Functions inherited from Observable
| Observable (const Observable &)
Observable & | operator= (const Observable &)
void | notifyObservers ()

## Detailed Description

Base class for cash flows.

This class is purely virtual and acts as a base class for the actual cash flow implementations.

## Member Function Documentation

virtual Date date | ( |  | ) | const

pure virtual

Note
  This is inherited from the event class

Implements Event.

Implemented in IndexedCashFlow, Coupon, Dividend, and SimpleCashFlow.

bool hasOccurred | ( | const Date & | refDate = `Date()`,
|  | boost::optional< bool > | includeRefDate = `boost::none`
| ) |  | const

virtual

returns true if an event has already occurred before a date

overloads Event::hasOccurred in order to take QL_TODAYS_PAYMENTS in account

Reimplemented from Event.

virtual Real amount | ( |  | ) | const

pure virtual

returns the amount of the cash flow

Note
  The amount is not discounted, i.e., it is the actual amount paid at the cash flow date.

Implemented in CPICashFlow, FractionalDividend, IndexedCashFlow, FixedDividend, InflationCoupon, FixedRateCoupon, FloatingRateCoupon, Dividend, and SimpleCashFlow.