मैं सी में लिख रहा हूँ ++ और मैं एक अज्ञात प्रकार (केवल रन समय में जाना जाता है) एक शुद्ध आभासी समारोह को पास करना चाहते करने के लिए अज्ञात प्रकार गुजर:सी ++ एक आभासी समारोह
virtual void DoSomething(??? data);
जहां DoSomething
एक कार्यान्वयन है व्युत्पन्न वर्ग में शुद्ध वर्चुअल फ़ंक्शन का।
मैं टेम्पलेट का उपयोग करने की योजना बनाई है, लेकिन के रूप में यह आभासी समारोह बाहर कर देते हैं और टेम्पलेट्स एक साथ काम नहीं करते: Can a C++ class member function template be virtual?
मैं (object की तरह कुछ सभी वर्गों मैं समारोह को पारित करने के लिए एक आधार वर्ग का उपयोग कर से बचना चाहते हैं सी # में)।
अग्रिम धन्यवाद
आप कृपया अधिक विशिष्ट हो सकता है
आप आगंतुक पैटर्न का उपयोग करने के लिए दिलचस्पी हो सकती है? आप फ़ंक्शन के अंदर डेटा का उपयोग कैसे करते हैं? डेटा के प्रकार के लिए क्या आवश्यकताएं हैं? जैसे केवल कुछ ज्ञात वर्ग हैं, या आप किसी भी वर्ग को स्वीकार करने की योजना बना रहे हैं जिसमें एक विशिष्ट विधि आदि है? – bolov
आपके प्रश्न को थोड़ा सा संकुचित करने की आवश्यकता है। क्या आप प्रकार की रेंज जानते हैं, क्या आप चाहते हैं कि उन्हें स्वचालित रूप से घटाया जाए? सबसे आसान जवाब "शून्य का उपयोग करें" होगा, एक बेहतर उत्तर स्टोरी टेलर में से एक हो सकता है। यह सब आपके उपयोगकेस पर निर्भर करता है। –
मैं उत्सुक हूं, जवाब देख रहा हूं, अगर किसी भी परिणाम को 'doSomething' पर कोई कास्टिंग किए बिना प्राप्त करने की कोई संभावना है। कुछ ऐसा तरीके से प्रकार को encapsulating जैसे कुछ 'टेम्पलेट' करने के बिना, और उस प्रकार को 'decltype'' के साथ पुनर्प्राप्त करने के बिना, यानी एक वर्चुअल फैक्ट्री विधि की तरह ... – perencia