Hi
Here is the scenario:
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?]
I could not think of any possible situation apart from overloaded '*' operator having write operation inside the definition itself.
Hope my question is clear.
Thanks
|
|
0
|
|
|
|
Reply
|
prasoonsaurav.nit
|
6/2/2012 5:22:06 PM |
|
On 6/2/2012 1:22 PM, Paradigm wrote:
> Here is the scenario:
>
> 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?]
>
> I could not think of any possible situation apart from overloaded '*'
> operator having write operation inside the definition itself.
You can't overload the operator* for pointers. That's a built-in one.
Once you dereference *x, you get a reference to the object. The pointer
variable does not have any play in dealing with that, so it seems that
the write access to 'x' itself has nothing to do with '*x'.
V
--
I do not respond to top-posted replies, please don't ask
|
|
0
|
|
|
|
Reply
|
v.bazarov (788)
|
6/3/2012 1:31:34 PM
|
|
Paradigm <prasoonsaurav.nit@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
|
|
|
|
Reply
|
alain14 (254)
|
6/3/2012 2:27:54 PM
|
|
Do you know what the "word" 'paradigm' means?
(Deal with it, I top-posted, on purpose).
"Paradigm" <prasoonsaurav.nit@gmail.com> wrote in message
news:5657706f-2eff-4782-95c8-b086d750dee7@googlegroups.com...
> Hi
>
> Here is the scenario:
>
> 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?]
>
> I could not think of any possible situation apart from overloaded '*'
> operator having write operation inside the definition itself.
>
> Hope my question is clear.
> Thanks
|
|
0
|
|
|
|
Reply
|
jnews1 (8)
|
7/15/2012 7:10:16 AM
|
|