Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 659333
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T23:01:57+00:00 2026-05-13T23:01:57+00:00

What are the main differences between Objective-C and C++ in terms of the syntax,

  • 0

What are the main differences between Objective-C and C++ in terms of the syntax, features, paradigms, frameworks and libraries?

*Important: My goal is not to start a performance war between the two languages. I only want real hard facts. In fact, my question is not related to performance! Please give sources for anything that may seem subjective.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T23:01:58+00:00Added an answer on May 13, 2026 at 11:01 pm

    Short list of some of the major differences:

    • C++ allows multiple inheritance, Objective-C doesn’t.
    • Unlike C++, Objective-C allows method parameters to be named and the method signature includes only the names and types of the parameters and return type (see bbum’s and Chuck’s comments below). In comparison, a C++ member function signature contains the function name as well as just the types of the parameters/return (without their names).
    • C++ uses bool, true and false, Objective-C uses BOOL, YES and NO.
    • C++ uses void* and nullptr, Objective-C prefers id and nil.
    • Objective-C uses “selectors” (which have type SEL) as an approximate equivalent to function pointers.
    • Objective-C uses a messaging paradigm (a la Smalltalk) where you can send “messages” to objects through methods/selectors.
    • Objective-C will happily let you send a message to nil, unlike C++ which will crash if you try to call a member function of nullptr
    • Objective-C allows for dynamic dispatch, allowing the class responding to a message to be determined at runtime, unlike C++ where the object a method is invoked upon must be known at compile time (see wilhelmtell’s comment below). This is related to the previous point.
    • Objective-C allows autogeneration of accessors for member variables using “properties”.
    • Objective-C allows assigning to self, and allows class initialisers (similar to constructors) to return a completely different class if desired. Contrast to C++, where if you create a new instance of a class (either implicitly on the stack, or explicitly through new) it is guaranteed to be of the type you originally specified.
    • Similarly, in Objective-C other classes may also dynamically alter a target class at runtime to intercept method calls.
    • Objective-C lacks the namespace feature of C++.
    • Objective-C lacks an equivalent to C++ references.
    • Objective-C lacks templates, preferring (for example) to instead allow weak typing in containers.
    • Objective-C doesn’t allow implicit method overloading, but C++ does. That is, in C++ int foo (void) and int foo (int) define an implicit overload of the method foo, but to achieve the same in Objective-C requires the explicit overloads - (int) foo and - (int) foo:(int) intParam. This is due to Objective-C’s named parameters being functionally equivalent to C++’s name mangling.
    • Objective-C will happily allow a method and a variable to share the same name, unlike C++ which will typically have fits. I imagine this is something to do with Objective-C using selectors instead of function pointers, and thus method names not actually having a “value”.
    • Objective-C doesn’t allow objects to be created on the stack – all objects must be allocated from the heap (either explicitly with an alloc message, or implicitly in an appropriate factory method).
    • Like C++, Objective-C has both structs and classes. However, where in C++ they are treated as almost exactly the same, in Objective-C they are treated wildly differently – you can create structs on the stack, for instance.

    In my opinion, probably the biggest difference is the syntax. You can achieve essentially the same things in either language, but in my opinion the C++ syntax is simpler while some of Objective-C’s features make certain tasks (such as GUI design) easier thanks to dynamic dispatch.

    Probably plenty of other things too that I’ve missed, I’ll update with any other things I think of. Other than that, can highly recommend the guide LiraNuna pointed you to. Incidentally, another site of interest might be this.

    I should also point out that I’m just starting learning Objective-C myself, and as such a lot of the above may not quite be correct or complete – I apologise if that’s the case, and welcome suggestions for improvement.

    EDIT: updated to address the points raised in the following comments, added a few more items to the list.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 324k
  • Answers 324k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Since 60 Hz is a common monitor refresh rate, it… May 14, 2026 at 1:22 am
  • Editorial Team
    Editorial Team added an answer if this is your real print_r output, then you have… May 14, 2026 at 1:22 am
  • Editorial Team
    Editorial Team added an answer You can either create two model forms (one for User… May 14, 2026 at 1:22 am

Related Questions

I'm learning Objective-C and as I can see, in some tutorials they use Object(imported
What are the main differences between a Linked List and a BinarySearchTree? Is BST
What are the main differences between PHP and Java that someone proficient in PHP
What are the main differences between SQLite and HSQLDB ? There are lots of
What are the main differences between Python metaclasses and class decorators? Is there something

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.