基本的に私の問題は何ですか:私は基本クラスと派生クラスを持っています。派生クラスで 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);