개요
Objective-c로 된 코드에 C++을 사용할 수 있던데 스위프트에서도 가능한지 알아보자
옵젝시에서 C++ 사용하기
- cpp파일에 클래스를 만든다.
- objective-c파일의 확장자를 mm으로 바꾼다.
- cpp 파일의 헤더 hpp를 import 시키고 사용한다.
ho.hpp
1 |
|
ho.cpp
1 |
|
main.mm
#import <Foundation/Foundation.h>
#import "ho.hpp"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
Ho ho;
ho.printHo();
std::cout << std::endl;
ho.setHo(1);
ho.setStr("hoho");
ho.printHo();
std::cout << std::endl;
Ho ho2(10, "helloooo");
ho2.printHo();
std::cout << std::endl;
}
return 0;
}
// Result
//
// int : 0
// str :
//
// int : 1
// str : hoho
//
// int : 10
// str : helloooo
//
// Program ended with exit code: 0
스위프트에서 C++ 사용하기
스위프트에서는 C++을 직접 지원하지 않는다. 따라서
- 위에서 만든 cpp 클래스를 똑같이 만든다.
- 그럼 아래와 같은 안내문이 뜨는데 Create를 누른다.
3.
공식 문서
- 스위프트 컴파일러는 Clang 컴파일러를 포함하고 있음
- modulemap을 이용해서 clang 모듈을 Import할 수 있음