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.