const 를 쓸 껀덕지가 있으며 const를 무조건 붙여두는게 좋다는 이야기 이다. 일단 나쁜 것 부터 이야기 하고 싶다. 왜냐하면 나는 "Effective C++ & Exceptional C++"의 영향으로 const를 붙이도록 무척 노력했고, 코드는 점점 const 를 써야지만 컴파일이 되야 되는 지경에 까지 이르게 되었기 때문이다. 특히 멤버 함수에 const를 붙여주면, 그 함수 내부에서 호출되는 멤버함수들 역시 const를 보장해 줘야 컴파일이 된다. 이 문법적 기능 때문에, 바이러스 처럼 const 는 퍼지게 된다. 이렇게 될 때 프로그래머가 느끼는 피곤함은 나에게 있어서 나쁘다고 이야기 하고 싶다. 뭐, 그렇다고 해서 const를 더 적게 붙이거나 그러진 않는다. ; ) 어디까지나 사람으로..
책 정리 검색 결과
런타임 오류와 컴파일 타임오류 등 정리한 곳 : http://pcclear.tistory.com/59 컴파일 타임에 에러가 나는 것은 전부 "문법" 에서 나게 된다. 이 문법은 런타임에 일어날 수 있는 많은 오류들을 잡아 준다. 예를 들어, explicit 키워드가 써진 생성자를 가진 객체를 매개변수로 하는 함수가 있을 경우, 해당 객체로 암시적 형변환 자체를 다 막아 줌으로써, 런타임에 생길 수 있는 오류를 잡아 줄 수 있다. 이것은 컴파일 타임에 런타임에 있을 수 있는 많은 오류들을 잡아 주기에 큰 역활을 한다.(개인적으로 이렇게 생각함) 다른 측면에서 보면, 런타임에 계산할 필요가 없는 상수들을 컴파일 타임에 계산하여, 사용 할 수도 있다. 이는 템플릿과 밀접한 관계를 가지고 있고, 메타 프로그래밍..
PC/UVa ID : 110103/10137, 인기도 : B, 성공률 : 보통, 레벨 : 1 친구들 4명이서 음식점에 갔다. 그리고 음식을 시킨다. 난 짜장면, 난 짬뽕, 난 탕수육, 난 깐풍기, 이렇게 각자 원하는 것을 시켰다. 그리고 서로 사이 좋게 나누어 먹었다. 식사를 끝맞친 친구들은 계산을 하기 위해서 계산대 앞에 갔다. 계산대를 보던 사람이 짜장면 2500원, 짬뽕 3000원, 탕수육 6000원, 깐풍기 8000원, 이렇게 나왔다고 했다. 친구들은 한 사람에게 모든 돈을 주고 계산하라고 했다. 계산 후, 각자 집으로 돌아갔다. 그리고 학교에서 만난 이 친구들은 어제 맛있게 서로 나누어 먹었는데, 각자 평등하게 돈을 내는게 좋겠다고 이야기를 하였다. 각자 낸 금액에서 주거니 받거니를 계산하니, ..
PC/UVa ID : 110102/10189, 인기도 : A, 성공률 : 높음, 레벨 : 1] 관련링크 : http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110102&format=html 말 그대로 지뢰 찾기를 만들라는 것인데, * 가 지뢰고 . 가 안전 지대라 했을 때, 4 x 4 의 지뢰밭이 다음과 같다고 하자. 그러면 오른쪽 처럼 출력되게 하는 프로그램을 만들라 가 이번 문제의 목표이다. 입력 첫번째로 지뢰 밭의 크기를 가로 row X 세로 col 을 받되, 각 길이는 0 ~ 100 사이 값이여야 한다. 또한 0 0 이 입력 되었을 경우 프로그램은 종료되어야 한다. 출력 각 지뢰밭에 대해 Field #x: 라 적혀있..
자원은 메모리인데, 이런 메모리를 사용하기 위해서 new 를 사용하게 된다. new로 할당한 자원은 항상 delete 를 해 줘야 하는데, 깜박 깜박하고 잊어 먹는 경우가 있다. 그래서, smart pointer 를 이용하는 것이다. 우선 "자원 획득은 초기화"에 대한 주제로, http://ikpil.com/417 에 포스트 했었는데, 이번 항목은 이렇게 넘겨도 좋을 듯 싶다. 여담으로 http://ikpil.com/720 이 부분도 생각해 봐야 한다. 총평 스마트 포인터를 직접 구현해 보는게 가장 큰 도움이 된다. 요령은 공유되는 카운팅 객체를 만들어 잘 사용 해야 하는 점이다. 아참, 내가 만든 스마트 포인터는 boost::shard_ptr과 싸운 후로, 이 세상에 멸종을 당했다. : )
PC/UVa ID : 110101/100, 인기도 : A, 성공률 : 낮음, 레벨 : 1 반복 사이클의 길이를 구하는 문제이다. 반복 사이클의 길이는 어떤 정수 n 이 있을 때, n으로 시작해 n이 짝수면 2로 나누고, 홀수면 3을 곱한 다음 1을 더한다. 이렇게 해서 새로 만들어진 숫자 n 이 1 이 될 때까지 같은 작업을 계속 반복한다. 이 반복이 1번당 길이 1 이라고 친다. 예를 들어 n == 22 라면, 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 가 만들어 지고, 16 사이클로 길이가 나온다. 입력 정수 두개( i, j )를 받는다. 이 두 정수는 1 ~ 1,000,000 사이의 숫자여야 한다. 1 ~ 1,000,000 까지의 수자는 모두 n == 1 로 만들어..
최근댓글