The point is that ObjC and C++ both have their strengths and weaknesses. You must choose what is more suitable for you. I have made a post that will help you. And here it is:
me said:
No language can replace another. Objective C is not suitable for closed world applications. C++ is best for that. Objective C performs extremely well into open world applications.
Examples of closed and open world applications:
--Engine compartment of a car is closed world
--Passenger compartment of a car is open world.
(yes, this example is taken by Cocoa Programming book 🙂)
For example. Working with NSSTrings is fabulous. But what this string type lacks, is functions for accessing individual characters inside an nsstring without calling a function. Operator overloading is missing (so, no <iostream>-like functions here) and you cannot ever,ever,ever make something like a stringstream. On the other hand, in C++, there is no ID object type (object whose type is determined at runtime). That little detail shows the things you can do with ObjC.
As you can see, there is no way one language can replace another. Your best bet is to use Objective C++ which marries elements from both worlds
My advice: Learn both. Each one will help you in different programming concepts. Of course C++ will guarantee programming into other platforms such as windows, but you should know that if you want to get involved with .NET or with Cocoa, you will want to know one additional language anyway, be it C#, or Objective-C, although C++ support on both systems is there.
So, why restrict yourself in learning C++ OR Obj-C? Learn both. Start with C++, as there are many references and will teach you about pointers etc (which will help you understand the Classes in Obj-C which are all created using pointers) and shalllow-deep copy. Then, learning Objective C will be a two-days mater for you. You can mix Objective C and C++ code in the same files, just by adding the ".mm" extension to your files. So, whatever your choice, the knowledge you will have acquired will not get wasted.
Many people here will tell you to go the other way around (learn Obj-C first) because ObjC is easier (and the C++ language is really huge), but I think that it would really help to understand the basic concepts of C++ first.
If you want to stick to C++, and not learn ObjC, you should know that there is also the Core Foundation framework, which (before my eyes, at least) is a substitute of the Foundation Framework of Objective C that provides the almost the same level of abstraction while maintaining compatibility with C and C++.