Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Indirection operator and write access

9 views
Skip to first unread message

Alain Ketterlin

unread,
Jun 3, 2012, 10:27:54 AM6/3/12
to
Paradigm <prasoons...@gmail.com> writes:

> There is a pointer variable 'x'.
>
> For what type of 'x' would the following show a write access on 'x'
>
> std::cout<<*x<<'\n'; //showing write access on x [what's its type?]

What does "showing write access on x" mean?

> I could not think of any possible situation apart from overloaded '*'
> operator having write operation inside the definition itself.

You can't overload *. I can't see how x could me modified here, but note
that anything can happen inside the version of operator<<(ostream&,...)
called at that point. Here is an example:

class X { ... };
class Y {
public:
Y(const X & x) { ... }
};
ostream & operator<<(ostream & os, const Y & y) {...}

If x is of type X*, your line of code may well call the version of op<<
on Y, which in turn can do anything. This is not a write access to x,
but still execution of an arbitrary amount of code.

-- Alain.
0 new messages