wrapper class and N-to-1-uses-a relationship

Z

zindorsky

Group,
I have a small doubt

This has been bugging me for a while, so I'm going to finally say
something. You do not have a doubt. You have a question. In English
"doubt" does not have the meaning you seem to think it does.
 
R

red floyd

This has been bugging me for a while, so I'm going to finally say
something. You do not have a doubt. You have a question. In English
"doubt" does not have the meaning you seem to think it does.

I believe it's the dialect that they use in India.
 
I

ittium

I believe it's the dialect that they use in India.

Thanks for pointing this out. This actually is a question. But I think,
in comp news groups, question is more important than small grammatical
errors.
 
V

Victor Bazarov

N-to-1 is easier to explain. This means that the same object of type A must
be accessible from N objects of type B. In C++, an object is a region of
memory, having a certain size (as reported by the sizeof() operator). As it
is physically impossible the some region of memory (A) belongs at the same
time into several different memory regions of same type (B), it means that
for having this kind of relationship, A must be a separate object and all B
objects should contain a pointer or reference to the A object.

With the wrapper classes it is not so clear what the author has meant. I
guess in this context this just means that the A object is already existing
and must remain accessible from other parts of the program as the A object.
Maybe it is a member in some std::map<A> or other container. However, other
parts of the program want to have access to the exact same object, but via
different interface. As it might not be possible or feasible to add this
interface directly to the A class, a wrapper class B is defined instead,
which provides the needed interface and forwards the actual function calls
to the original A object. For doing this it must contain a pointer or
reference to the A object.

I believe a more appropriate term for the latter is "adapter" instead of
"wrapper". Wrappers *usually* contain the object they "wrap".

V
 
I

ittium

Group,
I have a small doubt regarding
http://www.parashift.com/c++-faq-lite/value-vs-ref-semantics.html#faq
-3 1.4 As per this faq, only valid places(apart from virtual/dynamic
data) to use reference semantic are
- wrapper class
-N-to-1-uses-a relationship
These are generic terms, will appreciate if some one could explain
or probably direct me to some link. Google search did not offer
much. [...]
With the wrapper classes it is not so clear what the author has
meant. I guess in this context this just means that the A object is
already existing and must remain accessible from other parts of the
program as the A object. Maybe it is a member in some std::map<A> or
other container. However, other parts of the program want to have
access to the exact same object, but via different interface. As it
might not be possible or feasible to add this interface directly to
the A class, a wrapper class B is defined instead, which provides the
needed interface and forwards the actual function calls to the
original A object. For doing this it must contain a pointer or
reference to the A object.

I believe a more appropriate term for the latter is "adapter" instead
of "wrapper". Wrappers *usually* contain the object they "wrap".

Yes, "adaptor" would be more appropriate. Nevertheless, from this FAQ
section I get a feeling that by "wrapper" they mean just a "class wrapping
a pointer or reference to an object of another class". But then it seems
very close to to a tautology to claim that this requires storing a pointer
or reference.

Cheers
Paavo
Copying it to Marshall Cline, He might like to add something.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,997
Messages
2,570,239
Members
46,827
Latest member
DMUK_Beginner

Latest Threads

Top