반응형

전체 647

복사 생성자 - 얕은복사 깊은복사 C++

C++에서 생성자의 주된 임무는 클래스 멤버 변수의 초기화 일 것이다. 이러한 생성자는 기본적으로 인수의 유무에 따라서 인수의 형태에 따라서 몇가지 이름을 붙인다. 기억해둘 생성자에는 디폴트 생성자, 복사 생성자가 있고 결국 생성자이고, 형태 또한 생성자의 형태에서 벗어나지 않는다. 그러면 왜 이렇게 구분해 놓은 것인가? 그러면 생성자의 형태를 살펴본 후 이야기하자. 아주 간단한 클래스와 생성자를 만들었다. 생성자의 기본적인 형태는 위 코드처럼 반환타입이 존재하지않고, 클래스의 이름과 똑같다. 그 외에는 일반적인 함수의 형태를 띠게된다. 생성자는 생성자라는 이름처럼 객체의 생성과 동시에 호출이 되게 되어있다. myClass A; 는 myClass A = myClass(); 와 동일한 구문이다. 해석하자면..

프로그래밍/cpp 2014.03.18

과일주스 농축과즙 100% 잘 알고 마셔야겠다.

시중에 나온 과일주스를 살때 제일 눈에 띄는 문구가 농축과즙100%라는 문구다. 실제 소비자는 이 농축과즙이라는 것에 대해서 무지한 것이 사실이다. 그리고 100%라는 말이 있기때문에 과즙을 100%사용하고 첨가물이 안들어 간 것처럼 보인다. 착즙과즙이 직접 과일즙을 낸 것을 말한다면 착즙과즙 100%라는 문구와 농축과즙100%는 어떤 차이가 있는지 궁금해졌다. 그럼 농축과즙은 무엇일까? 농축과즙은 생착즙과즙을 열을 가열하여서 수분을 날리고, 반 이하로 부피로 줄인 것을 말한다. 이과정에서 과일 고유의 영향소와 향과 맛이 사라진다고 한다. 그래서 이런 처리후에 나중에 물로 원래의 부피로 희석을 하고, 원래 맛과 향을 다시 복원하기 위해서 여러가지 첨가물이 들어간다. 그리고 이런 처리를 한 후에 단순히 농..

관심사/기타 2014.03.17

동적배열에서 memmove함수 사용하기 연습 C언어

동적배열은 실행중 배열의 크기를 유연하게 바꿀수 있는 배열이다. 이전에 대략적으로 다뤘지만, 개인적으로 이 동적배열을 잘 다루면 앞으로 나오는 자료구조를 이해하고 적응하는데 많은 도움이 되기 때문에, 몇가지 중요한 포인트를 정리하고자 한다. 아니면 아주 동적배열에서 특정 데이타를 삽입하는 코드를 외우는 것도 괜찮다 생각된다. memmove 함수의 선언을 써보자. void *memmove(void *dest, const void *src, size_t n); // src부터 n만큼을 dest로 이동 memmove함수의 특징은 메모리상에서 dest와 src의 위치가 겹쳐 있어도 데이타의 손실없이 이동이 이루어 진다는데 있다. memcpy와 동작을 비교하기도 하지만 컴파일러에 따라서(gcc,vc)는 memcp..

소셜게임 디자인의 법칙 / 책 [서평]

도서관에서 우연히 익게된 책 소셜게임 디자인의 법칙.... 이 책의 주된 내용은 게임의 역사와 더불어, 게임의 변천사를 수익구조와 관련지어 통계적인 분석과 용어정리를 하였다. 그리고 저명한 게임 개발자와의 인터뷰 내용으로 현장감있는 목소리를 들을 수 있었다. 제목이 디자인의 법칙이라고 되어있지만, 여기서 말하는 디자인은 실제로 만드는 과정에서 게임의 내용을 디자인하는 내용이 아닌 수익구조에 대한 이야기들이었다. 소셜게임의 정의 이 책에서도 소셜게임 정의를 단순히 정의하지는 않는다. 게임내에 소셜네트워크가 있든, 소셜네트워크안에 소셜게임이 있든 두가지 모두 소셜게임이라고 볼 수 있지만, 수익구조를 놓고 본다면, 소셜네트워크 테두리에 포함된 게임을 요즘 말하는 소셜게임이라고 볼 수 있다. 그리서 게임은 주가..

관심사/도서 2014.03.13

일본 락밴드 추천 one ok rock 그리고 uverworld

개인적으로 일본을 좋아하진 않지만, 순수하게 음악만 가지고, 음악에 대해서만 이야기 해보겠습니다. 음악에 대해 무지한 본인이지만, 락을 좋아한다면 알아둬야할 일본의 두 락밴드를 추천해 드리겠습니다. uverworld(우버월드)라고 저는 그렇게 읽습니다. 예전에 디아블로2에 우버디아가 생각나네요..흠.. 아무튼 2005년 다쿠야의 강렬한 보컬을 중심으로 데뷔한 우버월드는 건담더블오(gundam 00)의 오프닝 곡으로도 잘 알려져 있습니다. 디그레이맨의 오프닝곡 '격동'도 유명하죠. 격동은 기타 부분이 좋은듯. 비 전문가적인 입장에서 우버월드의 보컬을 평가하자면 목청이 참 좋은데요, 노래도 좋지만, 라이브에 참 강한 보컬 같다는 느낌입니다. 딱 락이라는 느낌보다는 전 장르를 아우르는 느낌의 노래(랩까지)스타..

관심사/기타 2014.03.09

아파트 오피스텔에서 층간소음 경험담

얼마전 만난 친구들 5명과 이야기를 하다가 층간 소음에 관한 이야기를 하게 되었다. 대부분 층간 소음문제를 경험 했었고, 나 또한 예전에 층간 소음 문제로 윗층과 트러블이 있었기 때문에 모두가 층간 소음 문제의 심각성을 공감했다. 하지만 그 친구들은 현재 아파트에서 살고 나만 단독주택에서 산다. 나는 지금 층간 소음에 대해서 전혀 신경쓰지 않지만, 그 친구들은 현재진행형이다. 그냥 심하지 않으면 그냥 넘어가는 것 일 뿐이다. 나는 단독주택으로 이사오기전에는 매일매일을 정체모를 소리에 시달려야했다. 윗층에 올라가보기도하고, 항의도 해봤지만, 윗층에 아이를 키우는 것도 아니고, 윗층 사람은 자신은 아무것도 안했다는데, CCTV를 달 수도 없고, 신고를 하자니 불규칙적으로 언제 들려올지도 모르는 소리를 신고하..

관심사/기타 2014.03.07

더 시크릿(The Secret) - 끌어당김의 법칙은 존재하는가?

한국에서 한때 'the secret'이란 책 열풍이 일었었다. 책을 안읽은 사람도 이 책이 말하는 '끌어당김의 법칙'에 대해서 아는 사람도 있을 것이다. 약 7년이 지난 지금 이 책을 읽고 책이 말하는 '끌어당김의 법칙' 즉 책이 말하는 비밀을 실천한 사람들은 어떤 삶을 살고 있을까? 나도 이책의 내용이 꽤 흥미진진했다. 양자역학, 생각의 주파수, 우주의 피드백, 성경구절의 인용 등 다양한 방법으로 "the secret"을 설명한다. 이 책의 중심 내용은 간단하다. 나의 생각은 결과로 나에게 돌아온다. 즉, 내가 생각하고, 이루어졌다고 믿는 순간, 그것은 이루어질 것이다... 라는 것이다. 자본주의의 정신문화 자본주의와 정신문화는 어쩌면 서로 상극이되는 말이다. 물질과 정신이라는 측면에서 보면, 물질을 ..

관심사/도서 2014.03.02

노예 12년 나는 노예가 아닙니다.

실화를 바탕으로 한 영화 '노예 12년', 그리고 인권의 사각지대는 2014년에도 현재 진행형으로 존재한다. 한국 섬노예에 대한 뉴스기사들로 '노예'라는 것이 사회적으로 이슈가 되는 시점인데, 마치 이 영화는 그런 한국을 겨냥한 듯 하다. 이유야 어쨌든 이 영화는 실화를 바탕으로 자유라는 것에대해서 영상적으로 잘 표현한 영화라 생각든다. 그리고 브래드 피트의 깜짝 출연은 참 반가웠다. 영화의 전체적인 분위기는 인권이라는 무거운 소재와 사뭇 다르게 평온해 보인다. 영상은 사실적이면서도 중간 중간 길게 늘어뜨리는 부분이 있는데, 나른한 느낌마져 들게 만든다. 한 사람의 인권이 유린되는 순간에도 같은 노예들마저도 투명인간인 듯 자신의 일상을 묵묵히 이어나간다. 나른한 분위기와 함께 영상은 길게 늘어뜨려진다. ..

관심사/영 화 2014.03.02

동적배열 자료구조의 시작

c언어에서 배열은 가장 단순하면서도 직관적인 자료구조다. 배열의 요소가 연속적인 메모리 공간에 붙어 있고 요소의 타입이 동일하기 때문에, 포인터 연산을 통한 데이터로의 접근이 빠르다. 그런데 배열을 사용하면서도 정형적인 형식과, 특징때문에, 유연한 요소의 삽입과 삭제에 제한이 있고, 일단 선언되면 배열의 크기를 가변적으로 바꿀 수 없기 때문에 유연한 사용에 한계가 있다. memmove 함수를 이용해서 메모리의 위치를 이동하여 삽입 삭제가 가능하지만, 이 또한 처음에 정해진 배열의 크기안에서만 가능하다. 이를 해결 하기 위한 것이 동적배열이다. 2014/03/17 - [프로그래밍/C언어] - 동적배열에서 memmove함수 사용하기 연습 C언어 2014/03/20 - [프로그래밍/C언어] - 자료구조 - 연..

하노이탑 재귀호출 알고리즘

하노이 탑은 재귀호출의 대표적인 예다. 또 팩토리얼 연산은 재귀호출의 기본인데, 재귀호출이 무엇인지 알아보고, 점화식과의 관계를 도출하면서 C언어로 어떻게 코딩하는 가를 살펴보는 것이 이번 포스팅의 목표다. 거창한 듯 하지만 재귀호출을 이해만 하면 모든 것이 해결된다. 재귀호출은 간단히 말해서 함수가 자신을 호출하는 경우를 말한다. factorial의 경우를 살펴보자. factorial은 일련의 수의 곱을 말한다. a!은 1부터 a까지의 곱을 말하는데, for문을 이용해 증가되는 수를 계속 결과값에 곱해서 계산할 수 있다. 그럼 두가지 방법을 살펴보자. 재귀에 대한 생각(factorial) 결과는10! = 3628800으로 같다. 함수의 호출 형태는 같지만 내부적 구조는 다르다. 환경에 따른 성능의 차이..

반응형