तो यह मेरे पास एक बड़ी असाइनमेंट का एक छोटा सा हिस्सा है, मैं इसके लिए सिंटैक्स के बारे में अनिश्चित हूं।सी ++, मैं व्युत्पन्न कक्षा में बेस क्लास के ओवरलोडेड निष्कर्षण ऑपरेटर को कैसे कॉल करूं?
मैं एक आधार वर्ग Vehicle
नामित है, जो इन सदस्य हैं है: int fuelAmt
और int fuelUsage
)
(मैं उपयोग कर रहा हूँ नाम स्थान std
)
मैं <<
ऑपरेटर इस तरह से अतिभारित:
ostream& operator<<(ostream& osObject, const Vehicle& myVehicle)
{
cout << "Fuel Usage Rate: " << myVehicle.fuelUsage << endl
<< "Fuel Amount: " << myVehicle.fuelAmt << endl;
return osObject;
}
मैं इसे इस तरह से कॉल करता हूं:
cout << Vehicle;
परिणाम (उदाहरण) है:
Fuel Usage Rate: 10;
Fuel Amount: 50;
मैं भी एक Airplane
वर्ग जो Vehicle
वर्ग से निकला है, यह एक नए सदस्य का परिचय: int numEngines
।
मैं कैसे Airplane
कक्षा में <<
ऑपरेटर को ओवरलोड कर सकते हैं, इतना है कि यह पहली "वाहन अतिभारित ऑपरेटर परिणाम" कहते हैं, और फिर जो कुछ के परिणामों मैं व्युत्पन्न वर्ग से मुद्रित करने के लिए <<
ऑपरेटर बता ... तो, यहाँ है कि मैं क्या मतलब है:
मैं इसे Airplane
कक्षा में इस तरह कार्य करने की जरूरत है:
ostream& operator<<(ostream& osObject, const Airplane& myAirplane)
{
//First print the Fuel Usage rate and Fuel amount by calling
//the Base class overloaded << function
//then
cout << "Number of Engines: " << myAirplane.numEngines << endl;
return osObject;
}
मैं अपने सदस्यों 'मूल्यों outputting के आधार वर्ग निष्पादन कैसे को गति प्रदान करते हैं इस व्युत्पन्न वर्ग में,?
क्या यह हेडर बदलने जैसा कुछ है? इस तरह:
ostream& operator<<(ostream& osObject, const Airplane& myAirplane): operator<<Vehicle
वाहन ऑपरेटर में << के लिए आप के बारे में काम करेंगे केवल आधार वर्ग और आभासी प्रेषण के लिए ऑपरेटर < < है अदालत। आपको osObject को लिखना चाहिए। – user763305