함수 내부에 선언된 객체는 무엇인가? 말 그대로 함수 내부에서 객체가 선언된것을 뜻한다. 무슨 특징을 가지고 있는가? 객체는 스택에 올라 가게 되고, 자동적으로 존재할수 있는 범위(scope)를 지니게 된다. 왜 이것을 참조자로 반환하면 안되는가? 간단하다. 함수가 리턴되고, 바로 .. 객체는 사라진다. 이때 리턴된 참조자는 유효하고, 참조자가 참조하는 객체는 무효하다. 여기서 문제가 발생된다. 관령링크 http://ikpil.tistory.com/441
분류 전체보기 검색 결과
private 영역에 넣었다면? private는 클래스 외부에서의 그 어떤 접근도 허용하지 않겠다는 인터페이스이다. 항상 클래스 내부에서만 접근 가능하다. 이 때문에 많은 장점 있겠지만, 대표적으로 엉터리로 쓰기엔 어렵게 만들기 위해서이고, 캡슐화를 위해서이다. 엉터리로 쓰기엔... 이부분은 항목 18에 설명을 했고, 캡술화란 무엇인지는 지겹게 들었을 것이다. 캡슐화 부분만 다시 지적한다면, 객체 내부에 private 영역에 데이터를 넣음으로써 객체간의 혼동과 디버그, 보안 인터페이스를 보다 쉽게 막거나나 혹은 더 쉽게 가능해 지기 때문이다. 이처럼 캡슐화를 하게 되면, 모든 데이터를 함수 인터페이스 뒤에 감추게 되는데, 이때 구현상의 융통성을 전부 누릴 수 도 있다. 예를 들자면, .. 내부 데이터 접..
참조자를 왜 반환해도 되지 않나? 매개변수가 참조자이고, 그 참조자를 반환하는 경우에는 상관이 없다. 하지만, 함수 내부에서 선언된 객체의 경우에는 크게 잘못 된다. 그 이유는 어디에 있나? .. RAII 방식을 이해 했다면 그 이유를 알수 있을 듯 하지만, 설명하자면, 스택에 올라간 객체는 존재 할수 있는 범위(Scope)가 있다. 함수 내부에 선언(스택에 올려진)된 객체의 경우, 함수 종료 후 전기적 쇼크로 날라 간다. 그러므로 안에 있던 객체를 참조자로 리턴하게 되면 큰일난다. 그러면, 생성되고 소멸되는 객체를 어떻게 최적화 시키나? 리턴 타입을 임시객체 형태로 하기만 하면, 컴파일러가 알아서 처리해 준다. 이런 방법은 많은 컴파일러 회사들이 지원하고 있으며, 흔히들 "RVO(return value..
'값에 의한 전달' 이란 무엇을 뜻하는 것일까? 함수에 전달되는 인자를 복사하여 전달되는 방식 '상수객체 참조자에 의한 전달'이란 무엇을 뜻하는 것일까? 포인터나 레퍼런스 즉 * 나 & 로 전달하는 방식을 뜻한다. 상수 이므로 const type * 나 const type& 을 뜻한다. 둘의 차이점이 있다면 무엇일까? 복사 할때 들어가는 비용에 차이가 있다. 값에 의한 전달은 전달되는 인자의 크기가 크면 클 수록 복사 되는 비용이 점점 많이 지불해야 할것이다. 하지만 상수객체 참조자는 주소값인 4Byte(64bit 환경에선 8Byte)의 비용만 지불하면 되기 때문에 그 비용은 일정하다. 또한 참조에 의한 전달 방식은 슬라이싱 문제(복사 손실 : Slicing problem)가 없어진다. 그렇다면 무엇이 ..
http://www.zdnet.co.kr/itbiz/reports/trend/0,39034651,39129985,00.htm윈도우에 숨은「VMS 기술 유전자」안윤호 (아마추어 커널 해커) 2004/08/30 "윈도우 NT의 핵심 개발 인력들은 VMS에 관계했을 뿐만 아니라 VMS 개발자인 커틀러와도 같이 일한 적이 있다. 윈도우 NT 기술은 VMS와 막연하게 비슷할 것이라는 추측을 넘어 놀랄 만큼 흡사하다."(Russinovich)아폴로 11호가 처음 달에 착륙했을 때 아폴로 계획의 총 책임자이던 베르너 폰 브라운 박사는 일약 영웅으로 부각됐다.브라운 박사는 2차 대전 당시 런坪?공습하던 V2 로켓의 책임자이기도 했다. V2의 V는 ‘Vergeltungswaffe’라는의미의 독일어로 ‘진보된 무기’를..
오픈소스에 관심은 가고 있지만, 막상 어떤 마인드로 어떻게 공유하며, 어떻게 할것인지, 도통 모르겠다. 주위에서 어떻게 하는지라도 듣고 어떤 사람들이 하는지 궁금했었다. KLDPConf 는 몇번 있었지만, 자꾸 놓쳤었는데, 이번에는 되었으면 좋겠다.. KLDPConf는 오픈소스에 관심 있는 사람의 소규모 세미나로 음.. 아마도 열린 토론장이지 않을까 한다.. 한번도 못가봐서 정확히 모르겠다. 관련 링크 http://wiki.kldp.org/wiki.php/KLDPConf/20080614
최근댓글