이번에는 소멸자에 Virtual을 사용해야 하는 이유에 대해서 알아보겠다. 다음과 같은 코드가 있을때 동적으로 자식클래스(B) 생성후, 부모클래스(A)타입으로 받은후 삭제를 한다면 어떻게 될까? 결과는 다음과 같이 데이터타입인 A클래스의 소멸자만 호출되었다. B클래스의 소멸자가 호출되지 않기때문에 이렇게 한다면 메모리 누수가 생기고 언젠간 프로그램이 죽어버린다; 그래서 제대로된 메모리해제를 하려면 소멸자에 virtual을 사용해야 한다. virtual을 사용하니 다음과 같이 의도한대로 B가 메모리 해제를 하면서 소멸자가 호출되었다. 잊어버리지 말자~ 누군가에게는 작은도움이 되었기를 바라면서 오늘의 포스팅 끝~
요즘 여기저기 프로그램 테스트본다고 다니느라 포스팅을 못했다. 더 밀리기 전에 오랜만에 포스팅을 해봐야겠다. Virtual 키워드에 대한 개념은 이미 알고 있을것이라고 생각해서 따로 정리하지는 않겠다. 다음 문제는 모 게임회사의 코딩테스트 문제중 일부였다. 다음과 같은 코드가 있을때 출력되는 결과와 이유를 적으라고 한다 출력결과는 예상대로 BB였다. Virtual 키워드를 사용한 함수는 호출될때 실제 메모리에 할당된 클래스(B)에 정의되어 있는 함수를 1순위로 호출된다. 그래서 부모타입(A)으로 사용하여도 자식 클래스에서 정의되어 있다면 실제메모리에 할당된 클래스(B)에 맞는 함수가 호출된다. 그렇다면 A클래스 함수의 virtual이 없다면 출력결과는 어떻게 될까? 출력결과는 AB이다. 잊어 먹지 말자~..
요즘 서류지원을 하고 Pre-Test를 공부하느라 포스팅이 뜸했습니다a 그래도 공부하던중 몰랐던 재미있는 방법들이 있어서 정리하고 있는 중입니다. 다른 내용들도 시간내서 하나씩 정리해 올리겠습니다~ 오늘의 내용은 XOR를 이용한 정수값 Swap 입니다! 우선 혹시나 XOR 연산이 어떤 원리인지 기억이 가물가물하신 분들을 위해 정리해봤습니다. 다음과 같이 x나 y중 하나만 1일때 값이 1이고 나머지는 0으로 바꿔주는 Bit연산입니다. 그렇다면 이것을 이용해서 어떻게 두 정수값을 Swap할수 있을까요? 기존에 방법으로 하자면 이렇게 temp 변수를 이용해서 Swap을 하셨을겁니다. 여기서 설명할 방법은 다음과 같습니다. 다음과 같이 XOR 연산을 3번함으로써 두값을 Swap 할수 있었습니다. 다음은 결과화면..
- Total
- Today
- Yesterday
- 메타프로그래밍
- 루비 메타프로그래밍
- gap lock
- lock
- ruby
- dead lock
- db
- MySQL 족보
- 트랜잭션
- Elasticsearch Cluster
- Autoloading
- MySQL
- mysql lock
- 루비 상수
- ruby meta programming
- autoload_paths
- Pair-programming
- innoDB lock
- 갭 락
- next key lock
- metaprogramming
- 페어프로그래밍
- 인덱스
- 되추적
- InnoDB
- MySQL 인덱스
- 넥스트 키 락
- 엘라스틱서치 기초
- 루비
- 페어 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |