1. #include 문을 그대로 쓸 수 있다.
2. MinGW에서는 m확장자만, cygwin에서는 m, mm확장자를 쓸 수 있다.(이후 Cygwin으로 설명한다.)
3. m확장자는 완전한 Obj-C문법을 요구한다.(C++형 class사용불가. Obj-C형으로 선언해야 하는 듯,,)
4. g++ ??.m(Obj-C문법) ??.mm(Obj-C, C++문법) ??.cpp(C++문법)사용가능
ex)
1) g++ -o test mm.mm cpp.cpp (O)
2) g++ -c mm.mm cpp.cpp
g++ -c m.m
g++ -o test m.o cpp.o mm.o (O)
3) g++ -o test m.m mm.mm (O)
(각 m.m은 obj-c로 mm.mm은 obj-c와 cpp로 cpp.cpp는 cpp로 작성
단 m.m에서 cpp의 클래스 호출불가(헤더 삽입이 안됨))
뭐 이 정도인 것 같다. Obj-C가 흥미롭긴 하지만, 귀찮으면 전부 C++로 짠 다음 확장자만 mm으로 붙여도 될 듯 하다..
P.S. 참고할 점은 Obj-C에서 클래스의 메소드를 호출할 때는 [class method]식으로 하는 듯 한데, C++스타일의 클래스는 그냥 class.method()형식으로 불러야 한다.(C++은 C++, Obj-C는 Obj-C로 다뤄야 하는 듯,, 대략 소스도 첨부한다.