• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Objective-C++
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Objective-C++


  • Subject: Re: Objective-C++
  • From: Philip Bridson <email@hidden>
  • Date: Fri, 8 Feb 2008 23:25:25 +0000

OK then, I am now none the wiser because that is what I have been doing all along.

To be more precise I declare a class as follows:

This is my header file...

MyClass.h

#include <iostream>				//Here is where I get the error.

class MyClass
{
	//Variables etc...
};

This is my implementation...

MyClass.mm

//Code...

I get the error in the header file. It says it cannot find iostream. From what everyone has been saying it sounds like I am doing it right so why do I get an error?

Phil.

On 8 Feb 2008, at 23:20, John Stiles wrote:

No.
Headers stay headers.
The code files that include the headers need to be .cpps or .mms.


Philip Bridson wrote:

OK thats cool. My #include <iostream> is in a .h file. Just to clarify do I need to make the .h file a .mm?


Thanks.

On 8 Feb 2008, at 23:06, John Stiles wrote:

Any file that #includes <iostream>, either directly or indirectly via another header, needs to be a .cpp or .mm in order to work. .c or .m will not work.



Philip Bridson wrote:
Thanks both to Dave and John,

I am using .mm for my implementation files but it is in the .h files i am having problems. Do I need to put the entire class, including deceleration in an .mm file?

Thanks guys.

Phil

On Feb 8, 2008, at 2:51 PM, Philip Bridson wrote:


I am trying to write using Objective-C++. I have read the docs and understand what I can and can't do with it but I have a really basic problem. When I put #include <iostream> in my header files I get an error saying that the file cannot be found? Why is this?


Most likely because the compiler doesn't think that it's compiling an objective-c++ file, which means that it isn't using the C++ header search paths. What extension are you using for your filename? You have to use .mm to tell the compiler that it's objective-c++.



Also when creating the file, do I create a C++ file or an Obj-C file or doesn't it matter?


It should be a .mm file.


Finally, I want to do some thing like this

#ifdef _MAC_OS_X
    //do some obj-c code
#endif

#ifdef _WIN32
    //use WIN32 API coding
#endif


#ifdef __OBJC__ //objc only stuff #endif



_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Objective-C++
      • From: "Herb Petschauer" <email@hidden>
References: 
 >Objective-C++ (From: Philip Bridson <email@hidden>)
 >Re: Objective-C++ (From: John Stiles <email@hidden>)
 >Re: Objective-C++ (From: Philip Bridson <email@hidden>)
 >Re: Objective-C++ (From: John Stiles <email@hidden>)
 >Re: Objective-C++ (From: Philip Bridson <email@hidden>)
 >Re: Objective-C++ (From: John Stiles <email@hidden>)

  • Prev by Date: Re: Objective-C++
  • Next by Date: Re: Objective-C++
  • Previous by thread: Re: Objective-C++
  • Next by thread: Re: Objective-C++
  • Index(es):
    • Date
    • Thread