delete a,b,c; only deletes c.
Likewise, cin >> a,b; is the same as cin >> b;
Did you test that yourself?
For me, it is the first object which is deleted/read.
Edit:
@ Nisheeth: I don't think so. The language certainly doesn't provide help. From what I know delete p; simply asks for the memory allocated at address p to be marked as not in use. The contents at p are not changed by it, and neither is p itself.
Do correct me if I'm mistaken.
func( (a,b) ); // <- should be the same as func(b)
It's all about operator precedence. >> and delete (remember that delete is an operator) have a higher precendence than the comma operator (which actually has the lowest precedence of all operators).
Since the func() example isn't about operator precedence, then the comma operator is evaluated before the function call, resulting in the right-most expression (b) being passed to the function.
That said -- the comma operator is stupid. I don't know why it's in the language (other than for parameter lists)