스위프트에서 C++을 사용해보자:)
dqQQQ
·2023. 11. 29. 14:00
개요
Objective-c로 된 코드에 C++을 사용할 수 있던데 스위프트에서도 가능한지 알아보자
옵젝시에서 C++ 사용하기
- cpp파일에 클래스를 만든다.
- objective-c파일의 확장자를 mm으로 바꾼다.
- cpp 파일의 헤더 hpp를 import 시키고 사용한다.
ho.hpp
#ifndef ho_hpp
#define ho_hpp
#include <stdio.h>
#include <iostream>
class Ho {
private:
int ho;
std::string str;
public:
Ho();
Ho(int a, std::string b);
~Ho();
void printHo();
void setHo(int tmp);
int getHo();
void setStr(std::string s);
std::string getStr();
};
#endif /* ho_hpp */
ho.cpp
#include "ho.hpp"
Ho::Ho() { ho = 0; str = ""; }
Ho::Ho(int a, std::string b) { ho = a; str = b;}
Ho::~Ho() {}
void Ho::printHo() {
std::cout << "int : " << ho << std::endl << "str : " << str << std::endl;
}
void Ho::setHo(int tmp){
ho = tmp;
}
int Ho::getHo() {
return ho;
}
void Ho::setStr(std::string s) {
str = s;
}
std::string Ho::getStr() {
return str;
}
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.
'Swift' 카테고리의 다른 글
스위프트로 하는 자료구조 알고리즘:) (0) | 2023.11.30 |
---|---|
스위프트에서 전처리를 해보자:) (0) | 2023.11.29 |
스위프트에서 메모리 어떻게 관리하는 지 알자보자:) (0) | 2023.11.29 |
스위프트의 서브스크립트를 공부해보자:) (0) | 2023.11.29 |
Swift로 코딩테스트 문제를 풀어보자:) (0) | 2023.11.29 |