Examveda

What will be the output of the following C++ code?
#include <iostream>
using namespace std;
class bowl 
{
    public:
    int apples;
    int oranges;
};
int count_fruit(bowl * begin, bowl * end, int bowl :: *fruit)
{
    int count = 0;
    for (bowl * iterator = begin; iterator != end; ++ iterator)
       count += iterator ->* fruit;
    return count;
}
int main()
{
    bowl bowls[2] = {{ 1, 2 },{ 3, 5 }};
    cout << "I have " << count_fruit(bowls, bowls + 2, & bowl :: apples) << " apples\n";
    cout << "I have " << count_fruit(bowls, bowls + 2, & bowl :: oranges) << " oranges\n";
    return 0;
}

A. I have 4 apples
I have 7 oranges

B. I have 3 apples
I have 5 oranges

C. I have 1 apples
I have 5 oranges

D. I have 1 apples
I have 7 oranges

Answer: Option A


Join The Discussion

Related Questions on C plus plus miscellaneous

What is the difference between '++i' and 'i++' in C++?

A. None of the above

B. They both have the same effect

C. '++i' increments the value of 'i' before returning it, while 'i++' increments the value of 'i' after returning it

D. '++i' increments the value of 'i' after returning it, while 'i++' increments the value of 'i' before returning it