Operador de sobrecarga na subclasse

tour e visita guiada. Visita guiada amplia a classe de turismo. Estou sobrecarregando os operadores << e >> na classe tour.

Minha aula de turnê parece

#include <iostream>
#include <vector>
#include "Customer.h"

using namespace std;

class Tour {

protected:
    string id;
    string description;
    double fee;
    vector<string> customerList;

public:
    Tour();
    Tour(string idVal, string descriptionVal, double feeVal);
    string getId();
    string getDescription();
    double getFee();
    double getTotalForTour();
    virtual void addCustomer(string cust);
    vector<string> getCustomers();
    virtual void display();

    friend ostream& operator<< (ostream &out, Tour &cust);
    friend istream& operator>> (istream &in, Tour &cust);
};

então minha visita guiada é assim,

#include <iostream>
#include "Tour.h"
#include "SimpleDate.h"

using namespace std;

class GuidedTour : public Tour {

private:
    SimpleDate* date;
    string guideName;
    int maxNumTourists;

public:
    GuidedTour();
    GuidedTour(string idVal, string descriptionVal, double feeVal, SimpleDate* dateVal, string guideNameVal, int maxNumTouristsVal);
    virtual void addCustomer(string cust);
    SimpleDate* getDate();
    void display();

    friend ostream& operator<< (ostream &out, GuidedTour &cust);
    friend istream& operator>> (istream &in, GuidedTour &cust);
};

Eu quero sobrecarregar esses operadores de maneira diferente na subclasse para fazer outra coisa.

Eu tenho um vetor que contém passeios e visitas guiadas.

Quando eu loop através do vetor e faço o seguinte,

for (unsigned int i = 0; i < tourListVector.size(); i++) {

    cout << *tourListVector[i];
}

Ele sempre faz o que é especificado no tour, mesmo se o objeto for um tour guiado.

Você pode por favor ajudar?

questionAnswers(2)

yourAnswerToTheQuestion