जैसे सी ++ क्लास एक्ट है मेरे पास सी ++ क्लास MyObject
है और मैं इस डेटा को फीड करने में सक्षम होना चाहता हूं जैसे कि मैं ओएसस्ट्रीम (लेकिन प्रत्यक्ष एसस्ट्रीम के विपरीत, इनकमिंग डेटा को स्वरूपित किया जाना चाहिए विशेष तरीका)। मुझे यह पता लगाना प्रतीत नहीं होता है कि माइऑब्जेक्ट के लिए दिए गए इनपुट को खाने के लिए ऑपरेटर को ओवरलोड कैसे करें।एक कस्टम ओस्ट्रीम, एसस्ट्रीम
class MyObject {
public:
ostringstream s;
FEEDME
};
int main() {
MyObject obj;
obj.FEEDME << "Hello" << 12345;
// I want obj.s == ":Hello::12345:"
}
मैं चाहता हूँ यह इतना में खिलाया हर आइटम से घिरा हो:
तो दिए गए उदाहरण में, एस = ": हैलो :: 12345" अंतिम परिणाम होना चाहिए। मेरा सवाल क्या है, मैं इस ऑब्जेक्ट को कैसे बता सकता हूं कि जब कभी <<something
, डाल दें:: कुछ के आसपास।
क्या यह संभव है?
धन्यवाद, मुझे लगता है कि मैं कैसे अब इसे लागू करने, अभी भी एक त्रुटि मिल रही है पर आधार है: के लिए MyObject और ऑपरेटर "त्रुटि सदस्य के अवैध उपयोग (? आप 'और' भूल गए)" < <(कॉन्स टी एंड एक्स) { लेकिन इसके साथ गड़बड़ हो जाएगी और हल हो जाएगी। धन्यवाद प्रिय महोदय। –
मुझे लगता है कि g ++ 4.3.3 में ठीक संकलित करता है, कौन सा कंपाइलर उपयोग कर रहा है? –
जी ++ (जीसीसी) 4.3.2, आप इसे सही बनाते हैं और ठीक उसी तरह काम करता है जैसे मैं इसे चाहता हूं! धन्यवाद। समस्या मेरे कार्यक्रम के लिए कुछ खास प्रतीत होती है। –