To be fair, Objective C uses message passing, which doesn't have the same performance characteristics as C++ (worse initially dealing with the selector pool rather than a vtable offset; much better later when maintaining stability in your brittle C++ ABI requires pImpl->pImpl patterns jumping all around heap memory).