C++ Interview Questions and Answers


What are proxy objects in C++?

Objects that stand for other objects are called proxy objects or surrogates.

template <class t="">

class Array2D



class Array1D



T& operator[] (int index);

const T& operator[] (int index)const;


Array1D operator[] (int index);

const Array1D operator[] (int index) const;


The following then becomes legal:


cout<<data[3][6]; // fine

Here data[3] yields an Array1D object and the operator [] invocation on that object
yields the float in position(3,6) of the original two dimensional array. Clients
of the Array2D class need not be aware of the presence of the Array1D class. Objects
of this latter class stand for one-dimensional array objects that, conceptually,
do not exist for clients of Array2D. Such clients program as if they were using
real, live, two-dimensional arrays. Each Array1D object stands for a one-dimensional
array that is absent from a conceptual model used by the clients of Array2D. In
the above example, Array1D is a proxy class. Its instances stand for one-dimensional
arrays that, conceptually, do not exist.

Posted by:Richards