基本上我的问题是:我有一个基类和一个派生类。我需要在派生类上调用 operator<< 但它一直在调用基类,因为在主类中它被创建为 Order* order Order 是静态类型,但它被更改为 order= new SpecialOrder;
所以现在我需要它来调用派生类
提前非常感谢:D
//SpecialOrder.h
#include"Order.h"
class SpecialOrder : public Order// derived class
{
char* string;
public:
SpecialOrder();
SpecialOrder(const ISBN& isbn, const char* instr);
SpecialOrder(const SpecialOrder& source);
bool add(istream& is);
void display(ostream& os) const;
SpecialOrder& operator=(const SpecialOrder& source);
~SpecialOrder();
};
ostream& operator<<(ostream& os, SpecialOrder obj);
//Order.h
#include "ISBN.h"
class Order // base class
{
int ordered;
int delivered;
ISBN isbn;
public:
Order();
Order(const ISBN& isbn);
bool has(const ISBN& isbn) const;
int outstanding() const;
virtual bool add(istream& is);
bool add(int n);
bool receive(istream& is);
void display(ostream& os) const;
};
ostream& operator<<(ostream& os, Order obj);