旅遊和導遊。導遊將延續旅遊課程。我在巡迴課上超載< <和>>操作員。子類中的重載操作符
我的導遊班的樣子
#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);
};
那麼我的導遊是這樣的,
#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);
};
我想不同的重載這些運營商的子類做別的事情。
我有一個矢量包含旅遊和導遊。
當我遍歷向量,並執行以下,
for (unsigned int i = 0; i < tourListVector.size(); i++) {
cout << *tourListVector[i];
}
它總是做什麼在旅遊指定無論即使對象是導遊。
你能幫忙嗎?
[這](http://stackoverflow.com/q/4571611/812912)可以幫助 –
虛擬'閱讀(STD: :stream&)'和'write(std :: ostream&)'從友誼的基類運算符中調用將消除派生類中運算符的重寫需要。派生類重寫'read'和'write'(甚至可以根據需要直接調用基類作爲派生函數的一部分)。 – WhozCraig
你能解釋這一點嗎?對不起,我很新C++ –