की एक सरणी का उपयोग करते समय कौन सी व्युत्पन्न कक्षा को इंगित किया जा रहा है यह निर्धारित करने के लिए कि मैं एक सी ++ प्रोग्राम लिख रहा हूं जो एक मर जाएगा और एक सिक्का फ्लिप करेगा। मुझे विरासत और बहुरूपता का उपयोग करने की आवश्यकता है। मेरे पास वर्चुअल फ़ंक्शंस सही तरीके से सेट हैं। मेरी बेस क्लास (aRandomNumberGenerator) में मेरे पास वर्चुअल फ़ंक्शन उत्पन्न होता है। मुख्य() में मुझे अपने व्युत्पन्न वर्गों (एडी और एकोइन) में 2 बेस क्लास पॉइंटर्स की एक सरणी की आवश्यकता है। जब मैं जेनरेट() फ़ंक्शन को कॉल करता हूं तो मुझे कैसे पता चलेगा कि किस व्युत्पन्न वर्ग को सरणी में इंगित किया जा रहा है ??पॉइंटर्स
कोड:
int main()
{
int n;
int frequency1 = 0; // count of 1s rolled
int frequency2 = 0; // count of 2s rolled
int frequency3 = 0; // count of 3s rolled
int frequency4 = 0; // count of 4s rolled
int frequency5 = 0; // count of 5s rolled
int frequency6 = 0; // count of 6s rolled
int face; // stores most recently rolled value
int numHeads = 0; // count of heads
int numTails = 0; // count of tails
int side; // stores most recently flipped value
cout << "Enter a seed number: "; // promp for user to enter a seed number
cin >> n;
cout << endl;
cout << endl;
aRandomNumberGenerator number(n);
aDie die(n, n);
aCoin coin(n, n);
aRandomNumberGenerator *games[2]; // array of 2 base class pointers
for(int i=0; i <= 2; i++)
games[i]->generate();
// output the seed number entered by the user
cout << "the seed entered is: " << die.inputSeed(n) << endl;
cout << endl;
cout << endl;
// summarize results for 600 flips of a coin
for(int counter2 = 0; counter2 < 600; counter2++)
{
side = generate();
// determine flip value 0/1 and increment appropriate counter
switch (side)
{
case 0:
++numHeads;
break;
case 1:
++numTails;
break;
default:
cout << "can only be heads or tails";
}
}
// summarize results for 600 rolls of a die
for(int counter1 = 0; counter1 < 600; counter1++)
{
face = generate();
// determine roll value 1-6 and increment appropriate counter
switch (face)
{
case 1:
++frequency1;
break;
case 2:
++frequency2;
break;
case 3:
++frequency3;
break;
case 4:
++frequency4;
break;
case 5:
++frequency5;
break;
case 6:
++frequency6;
break;
default:
cout << "7 doen't exist on a die!";
}
}
// output results
cout << "Heads: " << numHeads << endl;
cout << "Tails: " << numTails << endl;
cout << "1: " << frequency1 << endl;
cout << "2: " << frequency2 << endl;
cout << "3: " << frequency3 << endl;
cout << "4: " << frequency4 << endl;
cout << "5: " << frequency5 << endl;
cout << "6: " << frequency6 << endl;
cout << endl;
cout << endl;
system ("pause");
return 0;
पूरे मुद्दे of.using बहुरूपता कि Hou प्रकार सभी –