On 12/28/06, Nico Heinze <[EMAIL PROTECTED]> wrote:

--- In [email protected], waqas ahmed <[EMAIL PROTECTED]> wrote:
>
> What is the output of printf("%d")
> What will happen if I say delete this?
> Why preincrement operator is faster than postincrement?
> What will happen if I allocate memory using "new" and free
>   it using "free" or allocate sing "calloc" and free it
>   using "delete"?
<snip>

These few excerpts are IMO perfect examples of questions everyone
should simply refuse to answer. Why?

1) printf( "%d") invokes undefined behaviour.
2) I'm no C++ expert, but I think "delete this;" is illegal. Victor,
Paul, Thomas, et al., am I right? If so, this is another perfectly bad
example. If not, thanks for explaining and please forgive me my lack
of knowledge.


In fact, it's legal to do so. Refer to:
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.15

3) It's simply not true on most modern CPUs that a pre-increment works
faster than a post-increment; the times when this was true is so long
ago that it's not even worth recalling those times. This is an utterly
useless question.


Well, I might be wrong here, but in the context of objects post increment
can be slower than pre increment, because it needs to return the old state
of the object in a temporary.


--
Tamas Marki

Reply via email to