I have a vector of base pointer and need to know which derive class of this base class for example
class Document {
protected :
string name;
Date date_borrow; // Date is class
};
class Book : public Document {
private :
int book_pages;
};
class Reference : public Document {
private :
string writer;
};
class Member {
protected :
vector < Document* > document;
};
class Library {
public :
void borrow ( Member* member, Document* document ){
member->add_document ( document );
}
private :
vector < Document* > documents;
vector < Member* > members;
};
in this code when member borrow document , i need to know the document* is a book or reference to calculate penalty for late. (the function of penalty is different for book and reference) and then push_back document in documents in private of member. how can i find the type of derive?