c++ - Getting functions of inherited functions to be called -


मान लें कि मेरे पास एक बेस क्लास Animal से एक वर्ग गाय संहिता, और बार्न वर्ग में एक पशु वेक्टर युक्त है, और हम कहते हैं कि पशु वर्ग में एक आभासी फ़ंक्शन है scream () , जो गाय ओवरराइड।

निम्न कोड के साथ:

Animal.h

  #ifndef _ANIMAL_H #define _ANIMAL_H #include & lt; iostream & gt; नेमस्पेस एसटीडी का उपयोग करना; वर्ग पशु (सार्वजनिक: पशु () {}; आभासी शून्य चीख () {cout & lt; & lt; "एएएएएएएएएएअघहह्हह्हह !!! आह ..." & lt; & lt; एंडल;}}; गाय: सार्वजनिक पशु {# एन्जिल / एचटीएमएल / एचटीएमएल / एचडी / सार्वजनिक: गाय () {} शून्य से चीख () {cout & lt; & lt; "MOOooooOOOOOOOO !!!" & Lt; & lt; एंडल;}}; #endif / * _COW_H * /  

बार्न.h

  #ifndef _BARN_H # परिभाषित _BARN_H #include "animal.h" # शामिल हैं & lt; vector & gt; क्लास बार्न {std :: vector & lt; पशु & gt; जानवरों; सार्वजनिक: बार्न () {} शून्य सम्मिलन एनिमल (पशु पशु) {animals.push_back (पशु);} शून्य अत्याचारअन्य () (के लिए (इंट ए = 0; ए & amp; एलटी; जानवरों।); ए ++) जानवरों [ए] चीख (); }}; #endif / * _BARN_H * /  

और अंत में मुख्य सीपीपी

  #include & lt; stdlib.h & gt; #include "Barn.h" #include "cow.h" # शामिल "Chicken.h" / * * * / int मुख्य (int argc, char ** argv) {बार्न खलिहान; barn.insertAnimal (गाय ()); barn.tortureAnimals (); वापसी (EXIT_SUCCESS); }  

मुझे यह आउटपुट मिलता है:

  aaaAAAAAAAAAAGHHHHHHHHHH !!! आह ...  

मैं इसे MOOooooOOOOOOOOOO !!! प्राप्त करने के लिए कैसे कोड करूँ? <और <अन्य> अन्य <वर्ग> विरासत <कोड> पशु चाहता है <कोड > चीज () होने के बजाय)?

एक मामूली संशोधन जो कि जानवरों को संकेत देता है मदद करनी चाहिए:

  #ifndef _BARN_H #define _BARN_H #include "animal.h" #include & lt; vector & gt; वर्ग बार्न {std :: vector & lt; पशु * & gt; जानवरों; सार्वजनिक: बार्न () {} शून्य डालें एनिमल (पशु * पशु) {animals.push_back (पशु);} शून्य अत्याचारअन्य () (के लिए (इंट ए = 0; एक & lt; animals.size (); a ++) जानवरों [ए] - & gt; चीख (); }}; Int main (int argc, char ** argv) {बार्न खलिहान; बर्न.इन्सेरट एनिमल (नया गाय ()); barn.tortureAnimals (); // यहाँ खलिहान सामग्री को साफ करना चाहिए ... वापसी (EXIT_SUCCESS); }  

Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -