क्या सी ++ में इंटरफेस का उचित कार्यान्वयन है जो vtable का उपयोग नहीं करता है?क्या सी ++ में इंटरफ़ेस का स्थिर पॉलीमोर्फिज्म कार्यान्वयन है जो vtable का उपयोग नहीं करता है?
उदाहरण के लिएclass BaseInterface{
public:
virtual void func() const = 0;
}
class BaseInterfaceImpl:public BaseInterface{
public:
void func(){ std::cout<<"called."<<endl; }
}
BaseInterface* obj = new BaseInterfaceImpl();
obj->func();
अंतिम पंक्ति में समारोह के लिए कॉल BaseInterfaceImpl :: समारोह के समारोह ptr खोजने के लिए vtable को जाता है, लेकिन वहाँ किसी भी सी ++ तरीका है कि सीधे करने के लिए है के रूप में BaseInterfaceImpl नहीं है शुद्ध इंटरफेस वर्ग बेसइंटरफेस के अलावा किसी भी अन्य वर्ग से उपclassed?
धन्यवाद। गिल।
यदि आप vtable के माध्यम से जाते हैं तो आप परवाह क्यों करेंगे? – Thomas
coz मैं एक परियोजना पर काम कर रहा हूं जहां गति मायने रखती है। भी, मुझे लगता है कि vtable पूर्ण ओओ polymorphism के लिए एक अच्छा समाधान है, लेकिन 'इंटरफ़ेस' को लागू करने के लिए एक overkill है और मुझे उम्मीद है कि कुछ हल्का समाधान मौजूद होगा .. – gilbertc
@gilbertc: मुझे लगता है कि यहां एक गलतफहमी है। * इंटरफेस की अवधारणा का कोई भी * उचित "कार्यान्वयन vtable जैसा कुछ होगा। अन्यथा, गतिशील बहुरूपता असंभव होगा। – Thomas