반응형

개발 330

[C++] 두 수의 나누고 소수점까지 출력

C++에서는 double 형 변수로 %를 쓰려고 하면 오류가 발생한다. 알고보니까 C++에서는 int 형에서만 %가 사용할 수 있다는데 깊은 빡침이 올라왔다. #include int main(){int a = 0.0;int b = 0.0; std::cin >> a >> b; std::cout.precision(9); //소수점 9자리까지 출력한다는 뜻std::cout.setf(std::ios::fixed, std::ios::floatfield); //소수점을 출력시켜준다. //위에 9자리까지 출력시켜준다는 코드가 없다면 디폴트로 소수 6자리까지 출력시켜준다. if (0 < a && b < 10) {std::cout

개발/C++ 2016.10.06

[C++] interface?

인터페이스? C++에서의 인터페이스를 알기 전에 Java에서의 인터페이스는 어떤 역할을 했는지 한 번 알아보자. 나는 인터페이스를 다형성, 즉 다양하게 활용?하기 위한 것과 프로토콜처럼 규약 때문에 사용한다고 알고 있다. 그렇다면 C++에서의 인터페이스는 무엇을 말하는 것일까? Effective C++에서는 인터페이스를 함수의 시그너처, 혹은 어떤 클래스의 접근 가능 요소(public 인터페이스, protected 인터페이스, private 인터페이스)라든지, 템플릿의 타입 매개변수로서 유효해야하는 표현식 등을 가리킨다고 말한다. 즉, 쉽게 말해서 이 책의 필자가 말하는 인터페이스는 일반적인 설계 인터페이스를 말하는 것 같다.

개발/C++ 2016.10.03

[C++] 복사 생성자

C++에는 복사 생성자라는 것이 있다. 이 복사 생성자는 어떤 객체의 초기화를 위해 그와 같은 타입의 객체로부터 초기화할 때 호출되는 함수인데 나는 이 복사 생성자가 헷갈리고 실수를 많이 할 수 있을 부분이라 중요하다고 생각한다. [복사 생성자] class ABC {private:int a;int b;public:ABC(int _a, int _b) : a(_a), b(_b) {}}; void main{ABC abc(5, 10);ABC abc2(abc); //abc2의 a, b를 출력하면 5, 10 이 정상적으로 출력이 된다. //ABC abc = ABC(5, 10);//ABC abc2 = abc;}; 이 코드를 보면 뭐가 문제지? 라는 생각을 할 수도 있다. 하지만 여기서 중요한 것은 바로 ‘ABC ab..

개발/C++ 2016.10.03

[C++] 생성자 explicit

explicit 의 의미 explicit: explicit로 선언된 생성자는 암시적인 타입 변환을 수행하는데 쓰이지 않게 된다. 그러나 타입 변환이 명시적으로 되는 곳에는 생성자를 쓸 수 있다. [생성자 explicit 예] class ABC{public:explicit ABC(int x=0, int y=0);ABC(bool a=true, int a=0);};ABC a;a = 10; //오류. explicit 때문에 암시적 타입 변환 Xa = true; //Gooda = ABC(10); //Good. explicit로 선언된 생성자는 명시적 타입 변환은 된다! 이렇게 explicit를 사용하면 코딩할 때 바라지않던 타입 변환을 막아 주기 때문에 암시적 타입 변환에 생성자가 사용될 여지를 남겨둘 이유가 없..

개발/C++ 2016.10.01

[C++] 함수 시그너처(signature)

시그너처(signature)가 뭐냐 시그니처라는 단어에 대해서 전혀 알지도 못하고 있었는데 책에서 등장했다. 시그니처(signature): 어떤 함수의 선언문에는 시그니처가, 다시 말해 매개변수 리스트와 반환타입이 나와있는데 시그니처가 그 함수의 타입이다. 예를 한번 들어보겠다. [시그니처의 예] int getMoney(Money money) 여기서의 getMoney의 시그니처는 int(Money)이다. 해결되었다.

개발/C++ 2016.10.01

[C++] 선언

나는 다른 방식으로 글을 써보려한다. 내가 현재 읽고 있는 책은 “Effective C++” 이라는 책이며 내가 읽을 만한 난이도보다 좀 더 높은 난이도의 책이지만 이 책에 나와 있는 개념, 내용들 중 내가 모르는 것이 나오면 그것에 대해 검색을 하면서 좀 더 알아갈 수 있으며 이 책이 재밌다고 생각하기 때문에 선택했다. 선언에 대해서 다시 한 번 짚고 가자 선언과 정의는 개발자는 거의 모두 한번 이상은 사용해 본 적이 있을 것이다. 하지만이 두 가지의 단어가 가지는 뜻을 모르거나, 헷갈려하는 사람들이 있다. 선언: 코드에 사용되는 ‘어떤 대상’의 이름과 타입을 컴파일러에게 알려 주는 것이지만 세부사항은 들어 있지 않다. 예를 한번 보자. [선언의 예] extern int x; //객체 선언 std::s..

개발/C++ 2016.10.01

[안드로이드] .obb 확장자 파일을 다운받아 압축 풀기

이전 글에서는 구글에 업로드한 .obb 파일, 즉 확장 파일을 다운받을 수 있는 환경을 만들었다. 이번에는 다운받은 .obb 파일을 이용해 이미지를 띄우는 것에 대해 글을 작성하겠다. 구글 플레이스토어에 어플을 등록할 때 확장 파일도 업로드 했다고 가정하겠다. 확장 파일을 업로드 할 때 확장 파일로 업로드할 파일들을 압축해 (파일명).zip 라는 형식으로 만들어야 한다. 그렇다면 이제 플레이스토어에 등록된 어플리케이션을 다운받게 되면 .obb 파일, 즉 확장 파일도 함께 다운을 받게 된다. [그림 1: 확장 파일이 다운로드 되는 경로] [그림 1]을 보면 핸드폰 최상위 폴더에 있는 Android/obb 폴더로 경로가 지정되있는데 확장 파일이 다운받아지게 된다면 이 경로로 다운을 받게된다. ※ 폴더를 제외..

개발/Mobile 2016.09.30

[안드로이드] 안드로이드 확장 파일 .obb 파일

안드로이드 어플리케이션을 구글 플레이스토어에 등록할 때 확장 파일을 추가하는 란이 있다. 확장 파일에는 .zip를 업로드 하면 되는데 이렇게 안드로이드 어플리케이션을 플레이스토어에 등록하고 나서 .obb 파일을 이용해 파일을 불러오는 것에 대해서 글을 작성하겠다. 구글에 검색하면 나오는 블로그들은 너무 설명이 쉽지 않아서 해맸었기 때문에 쉽게 설명해보겠다.. 귀찮지만 [그림 1: 라이브러리 다운로드] 업로드한 확장 파일, 즉 .obb 파일을 다운로드 하려면 두 가지 라이브러리를 다운받아야 한다.1. Google Play APK Expansion Library 2. Google play Licensing Library 이 두 가지 라이브러리를 다운 받아야 확장 파일을 이용할 수 있다. 이 두 가지 라이브러..

개발/Mobile 2016.09.25
반응형