Objective C ++ 란 무엇입니까? [닫은]


165

Objective C ++는 무엇이며 Xcode에서이 언어를 사용할 수 있습니까?



'무엇을 요청하고 있는지 말하기 어려운'가까운 이유는 질문을 끝내는 오래된 이유였습니다. 요즘에는 OP가 실제로 두 가지 다른 질문이기 때문에 그 이유는 '너무 광범위합니다'. 첫째, Objective C ++을 설명하는 데는 여러 페이지가 필요하며 두 번째로 iOS 코딩은 구체적으로 Objective C를 사용하여 수행되며 XCode는 iOS 개발의 기본 IDE이므로 두 가지가 관련되어 있지만 너무 큰 문제입니다. 이러한 유형의 질문은 설명서 사이트로 이동해야합니다.
Kelly S. French

1
@ DaveVoyles-MSFT : 질문을 내리고 6 백만 명이 넘는 기계화, 산업화, 체계화되고 체계적인 대량 살인이 같은 것이라고 생각하는 사람을 진지하게 받아들이는 데 어려움을 겪고 있습니다.
Jörg W Mittag

3
@ JörgWMittag 죄송합니다. Stack Overflow 중재자가 실제 질문이 아닌 답변이 마감되었습니다.
Dave Voyles

1
@ DaveVoyles-MSFT : "실제 질문이 아님"마감 투표 사유는 몇 년 전에 제거되었습니다.
Jörg W Mittag

답변:


158

Objective-C ++는 Objective-C 클래스와 C ++ 클래스 (전적으로 무관 한 두 엔티티)를 혼합하는 소스 코드입니다. C ++ 코드는 이전과 마찬가지로 작동하며 결과 실행 파일은 Objective-C 런타임과 연결되므로 Objective-C 클래스도 작동합니다. Xcode에서 확실히 사용할 수 있습니다- .mm확장자를 가진 파일 이름을 지정하십시오 .

또한 Objective-C ++에 대한 Apple의 문서 (슬프게 삭제되었지만 보관 된) 를 읽을 수도 있습니다 .


2
해당 링크의 제한 섹션에서 이것을 언급하고 Objective-C ++를
asgs

33

Objective-C ++는 C ++ 코드 (아마도 클래스)와 연결할 수있는 Objective-C (아마도 Cocoa Framework)입니다.

예, Xcode에서이 언어를 사용하여 Mac OS X, iPhone / iPodTouch, iPad 용으로 개발할 수 있습니다. 잘 작동합니다.

Objective-C ++를 사용하기 위해 프로젝트에서 이상한 일을 할 필요가 없습니다. 확장자가 .mm ( .m 대신) 인 Objective-C 파일의 이름을 지정 하면됩니다.

내가 가장 좋아하는 아키텍처 : C ++로 게임 / 애플리케이션의 기본 클래스 라이브러리를 개발하여 다른 플랫폼 (Windows, Linux)에서 재사용하고 iPhone / iPad UI 전용으로 Cocoa를 사용할 수 있습니다 .


10
C ++과의 연결 에 관한 것이 아닙니다. 혼합 을 의미 합니까?
Georg Fritzsche

6

Objective-c ++를 사용하고 싶지만 파일 이름을 지정하고 싶지 않은 .mm경우 비슷한 질문에 대한 내 대답을 확인 하십시오 .

.m을 .mm 또는 이와 유사한 것으로 변경하지 않고 프로젝트를 클릭하면 tagets-> 빌드 설정을 클릭하여 "LLVM GCC 4.2- 언어" (새 xcode는 "Apple LLVM 컴파일러 4.2"라고 함 ) Compile Sources 를 볼 것입니다. Objective-C ++로 값을 변경 하십시오 .


4
이 작업을 수행 할 수는 있지만 이식성이 없으며 코드를 유지하려고하는 사람에게 혼란을 줄 수 있습니다. 여기서 .s는 헤더이고 .r은 구현 파일입니다.
Grady Player

.s와 .r을 어디에서 당기고 있습니까? 일반 Objective-c를 사용하는 것처럼 메소드 파일에 표준 .m을 사용하고 헤더에 .h를 사용할 수 있습니다.
존 리셀 바토

나는 단지 .m이 무언가를 의미한다고 말하고 있습니다.
Grady Player

Objective-c에서 std 벡터 (c ++ std)를 사용하려면 Objective-c ++가 켜져 있어야합니다. objective-c 코드 내에서 벡터를 사용하기 위해 다른 파일 형식 확장명을 만드는 것이 의미가 없습니다.
John Riselvato 2016 년

13
절대적으로, 그것은 'cout'또는 C의 일부가 아닌 것을 사용하는 것입니다.
Grady Player
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.