>>5
You mean "dereferencing" or "sending a message to"?
Smalltalk has operator overloading because every operator is a method, and thus dynamically dispatched just like any method. I wouldn't call it clean, though, since there's no way you can assign precedence to operators.
Because then
id would be just like
void, and that would make even less sense.
Yes you can, as long as it's defined before it's used.
Neither can Smalltalk's. Why would ObjC be any different, since it's objective is basically
adding Smalltalk's object model and message sending syntax to C?
I thinkg the example you're looking for is
if (self = [super init]) {
// do stuff
}
and it's not a problem of the language, it's just an ugly idiom that is more of a shibboleth than an endorsement of a programming practice.
One line of code is cumbersome? A bit melodramatic, are we?