निम्नलिखित कोड खंड पर विचार करें:व्यवहार वस्तु ++ संदर्भ
class Window // Base class for C++ virtual function example
{
public:
virtual void Create() // virtual function for C++ virtual function example
{
cout <<"Base class Window"<<endl;
}
};
class CommandButton : public Window
{
public:
void Create()
{
cout<<"Derived class Command Button - Overridden C++ virtual function"<<endl;
}
};
int main()
{
Window *button = new CommandButton;
Window& aRef = *button;
aRef.Create(); // Output: Derived class Command Button - Overridden C++ virtual function
Window bRef=*button;
bRef.Create(); // Output: Base class Window
return 0;
}
दोनों आरिफ और BREF असाइन किए जाएंगे * बटन, लेकिन क्यों दो उत्पादन अलग हैं। संदर्भ प्रकार और गैर संदर्भ प्रकार को निर्दिष्ट करने के बीच क्या अंतर है?
का जवाब दे रहा था, इसलिए, इस प्रतिलिपि के साथ निर्माता देर से बाध्यकारी बस नहीं होता है, है ना? –
गनर: देर बाध्यकारी यहां प्रासंगिक नहीं है। आप एक नई स्थिर रूप से टाइप की गई वस्तु बना रहे हैं जो गतिशील रूप से टाइप की गई वस्तु नहीं है (इसके लिए आपको संदर्भ या सूचक की आवश्यकता है)। –
आभासी या संरक्षित विनाशक। कई डिज़ाइनों में सदस्य कार्यों को बहुरूप रूप से हटाए बिना बहुलक रूप से कहा जाता है। –