What are proxy objects?

Answer Posted / harendra pal

Objects that stand for other objects are called proxy objects or surrogates.
Example:
template<class T>
class Array2D
{
public:
class Array1D
{
public:
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:
Array2D<float>data(10,20);
........
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.

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Is linux written in c or c++?

663


What is a dangling pointer in c++?

755


Write about the stack unwinding?

732


What is the copy-and-swap idiom?

718


What is using namespace std in c++?

686






Define pre-condition and post-condition to a member function in c++?

761


Explain the difference between class and struct in c++?

674


What operators can you overload in c++?

675


What are the methods of exporting a function from a dll?

738


What is #include cstdlib in c++?

769


How can I learn c++ easily?

712


What is the difference between while and do while loop?

668


In what situations do you have to use initialization list rather than assignment in constructors?

720


How does atoi function work?

744


What is the difference between C and CPP?

719