Subscripting

1

What do we need to use when we have multiple subscripts?

A. operator()
B. operator[]
C. operator
D. None of the mentioned

2

What do we need to do to pointer for overloading the subscript operator?

A. reference pointer
B. dereference pointer
C. store it in heap
D. None of the mentioned

3

What is the output of this program?

1.
    #include 
2.
    using namespace std;
3.
    class sample
4.
    {
5.
        private:
6.
        int* i;
7.
        int j;
8.
        public:
9.
        sample (int j);
10.
        ~sample ();
11.
        int& operator [] (int n);
12.
    };
13.
    int& sample::operator [] (int n)
14.
    {
15.
        return i[n];
16.
    }
17.
    sample::sample (int j)
18.
    {
19.
        i = new int [j];
20.
        j = j;
21.
    }
22.
    sample::~sample ()
23.
    {
24.
        delete [] i;
25.
    }
26.
    int main ()
27.
    {
28.
        sample m (5);
29.
        m [0] = 25;
30.
        m [1] = 20;
31.
        m [2] = 15;
32.
        m [3] = 10;
33.
        m [4] = 5;
34.
        for (int n = 0; n < 5; ++ n)
35.
        cout << m [n];
36.
        return 0;
37.
    }
A. 252015105
B. 510152025
C. 51015
D. None of the mentioned

4

What is the output of this program?

1.
    #include  
2.
    using namespace std;
3.
    class A
4.
    {
5.
        public:
6.
        int x;
7.
        A(int n = 0) : x(n) {};
8.
        int& operator[](int n)
9.
        {
10.
             cout << "0" ;
11.
             return x;
12.
        }
13.
        int operator[](int n) const
14.
        {
15.
             cout << "1" ;
16.
             return x;
17.
        }
18.
     };
19.
    void foo(const A& a)
20.
    {
21.
        int z = a[2];
22.
    }
23.
    int main()
24.
    {
25.
        A a(7);
26.
        a[3]  = 8;
27.
        int z = a[2];
28.
        foo(a);
29.
        return 0;
30.
    }
A. 110
B. 111
C. 011
D. 001

5

What is the output of this program?

1.
    #include 
2.
    using namespace std;
3.
    const int limit = 4;
4.
    class safearray
5.
    {
6.
        private:
7.
        int arr[limit];
8.
        public:
9.
        int& operator [](int n)
10.
        {
11.
            if (n == limit - 1)
12.
            {
13.
                int temp;
14.
                for (int i = 0; i < limit; i++)
15.
                {
16.
                    if (arr[n + 1] > arr[n])
17.
                    {
18.
                        temp = arr[n];
19.
                        arr[n] = arr[n + 1];
20.
                        arr[n + 1] = temp;
21.
                    }     
22.
                }  
23.
            }
24.
            return arr[n];
25.
        }
26.
    };
27.
    int main()
28.
    {
29.
        safearray sa1;
30.
        for(int j = 0; j < limit; j++)
31.
            sa1[j] = j*10;
32.
        for(int j = 0; j < limit; j++)
33.
        {
34.
            int temp = sa1[j];
35.
            cout << "Element " << j << " is " << temp;
36.
        }
37.
        return 0;
38.
    }
A. 0102030
B. 1020300
C. 3020100
D. error