본문 바로가기

전체 글714

C++에서의 다중상속 2012년 7월 20일 그래서 간단하게 테스트해본 결과 다중상속이 허용된다. 하지만 다중상속에는 의도치 않은 여러 문제가 발생할 수가 있는데 예를 들면 class A { int a; }; class B: public A { int b; }; class Test: public A, public B { Test() {} }; 이 경우에 Test클래스가 상속받는 A, B 클래스 중에 B클래스가 A클래스를 상속받고 있다. 그럼 Test클래스는 결과적으로 A클래스를 두번 상속 받게 되는 것이다. 그럼 A클래스의 멤버함수 a가 중복이 되는 문제가 발생한다. 그러므로 컴파일 에러! C#에서의 인터페이스와 같이 추상 클래스를 상속 받을 때는 문제가 없다. 현재 분석중인 소스에서도 순수가상함수들로 이루어진 추상클래스들만.. 2012. 7. 20.
리눅스 환경에서 용량 이상 현상이 발생했을 때 처리 2012년 7월 5일 업무중에 컴파일을 새로 하려던 중 갑자기 용량 부족 현상이 생겨서 컴파일이 되질 않았다. 갑작스럽게 뭐 한것도 없는데 용량이부족하다고 해서 팀장님께 여쭤보니 mysql에서 리플리케이션 때문에 로그가 남는거라고 하셨는데 리플리케이션이 아직은 뭔지 잘 모르겠지만 아무튼 로그의 용량이 너무 커서 용량 부족현상이 일어 났던 것이었다. 이 때 어떤 부분에서 용량의 이상이 생겼는지 알아보기 위해서 du와 df 명령을 이용한다. du는 폴더들의 용량이 표시되고 -hs 옵션을 주면 해당 경로 하위의 전체 용량을 보여준다. 유용하게 쓰일 수 있다! 그리고 이런 문제가 발생해서 해당 로그를 지워야 할 때 파일을 지우면서 기본적으로 rm명령은 되묻지 않기 때문에 실수를 할 확률이 매우 높다고 하신다. .. 2012. 7. 5.
[C++] equal_rage by 용호 2012년 6월 25일 multimap MapQuest; 에서 MapQuest안에 여러가지 값이 들어있을 때 multimap은 중복된 키 값을 허용한다. equal_range를 이용하면 매개변수로 넘겨주는 key값에 해당하는 데이터의 시작과 끝 위치를 넘겨준다. ex) MapQuest mapQuest; mapQuest에 데이터 삽입.. std::pair PairQuest; PairQuest Pairiter; Pairiter = mapQuest.equal_range( key ); key값과 동일한 key값을 가진 데이터들 중 첫번째 위치(lower_bound())와 마지막 위치의 다음 위치(upper_bound())를 쌍으로 pair 객체를 반환한다. 2012. 6. 25.
[C++] iconv를 이용하여 문자 인코딩 방식 변경 By 용호 2011년 9월 16일 서버에서 클라이언트로 문자열을 보내면 서버와 클라 간 문자 인코딩 방식이 달라서 문자가 깨지는 현상이 발생 했었다. 그래서 영어로만 사용하던 중 기획팀에서 한글로 띄워달라는 요청에 방법을 찾고 있었는데 서버에서 전체 공지를 할때 iconv를 사용한다는 것을 알게 되었다. - #include 먼저, iconv를 사용하기 위해서는 헤더파일을 참조 해야한다. - iconv_t cd iconv_t 타입의 변수가 필요하다. src_code : 기존의 문자 인코딩 방식 des_code : 변환될 문자 인코딩 방식 src : 변환 해야 할 문자 des : 변환 후 담기게 될 변수 src_len : 변환해야 할 문자의 크기 des_len : 변환 후 담기게 될 변수의 크기 - cd = iconv.. 2011. 9. 16.