본문 바로가기

전체 글

C++에서 스마트 포인터 템플릿 C++에서 스마트 포인터 템플릿 데이비드 하비 (David Harvey) ⓒ 1995/1996 David Harvey. All rights reserved Contact Home: http://www.davethehat.com/ 작성 날짜 :1997년 6월 27일 1997 년 11 월 30 일 수정 이 글을 쓸 수 있도록 권한을 준 개체 디자이너에 대한 감사를 표함 이 문서는 형식화 된 개체 변수의 구현에서 작동하도록 넣어 유용한 C + + 템플릿 관용구의 설명을 제공합니다. 템플릿 의 C + + 몇 시간 동안 , 작년 정도 의 언어 의 이 기능 의 잠재력 에 대한 관심이 급증 가능성을 보여줬습니다 . 일부가되어 있지만 이 인기있는 컴파일러 의 믿을 수있는 (물론, 합리적으로 신뢰할 수있는 ) 구현 의 .. 더보기
C++ - 스마트 포인터 커스터마이즈 C++에서 최대의 단점으로 꼽히는 메모리 관리의 불편함은 스마트 포인터를 사용함으로써 어느 정도 극복할 수 있다. 하지만, 스마트 포인터는 만능이 아니며, 더군다나 연산자 오버로딩만으로 쉽게 사용할 수 있는 것은 더더욱 아니다. 물론, 앞으로 tr1에 포함된 boost::shared_ptr이 std::auto_ptr을 대신해 표준으로 포함될 예정이므로(이것은 std::auto_ptr이 없어진다는 것이 아니라, C++의 새로운 대표적인 스마트 포인터로 자리 매김할 것이라는 뜻이다) 스마트 포인터를 직접 만들어야 하는 일은 여간해서는 없겠지만, 몇몇 상황에서는 커스터마이즈된 스마트 포인터를 사용해야 할 필요성이 있다. 예컨데, 레퍼런스 카운팅 전략이 특정 상황에서는 맞지 않을 수도 있고, 현재 표준에 포함된.. 더보기
C++ - 스마트 포인터 C++ 기본 제공(bult-in) 포인터(이하 벙어리(dumb) 포인터) 대신 스마트 포인터를 사용하는 세가지 이유 생성(construction)과 소멸(destruction) 작업을 조절할 수 있다. 리소스 누수를 막는 것 복사(copy)와 대입(assignment) 동작을 조절할 수 있다. 역참조(dereferencing) 동작을 조절할 수 있다. 스마트 포인터는 C++ 기본 제공 포인터처럼 가리킬 타입이 정확하게 지정되야함 타입제약이 엄격하다(strongly typed) 스마트 포인터의 생성, 대입, 소멸 스마트 포인터의 생성, 대입, 소멸은 소유권(ownership)이라는 것 때문에 꽤 복잡함. auto_ptr은 대입시 LHS 변수에 소유권이 넘어가게되고 RHS 변수의 포인터에는 NULL이 들어간.. 더보기
[기초] BlockComment.java /* 파일이름 : BlockComment.java 작성자 : 아무개 작성일 : 2012년 9월 25일 작성이유 : System.out.println 메소드 기능 테스트 */ class SystemOutPrintln { public static void main(String[] args) { System.out.println(7); System.out.println(3.15); System.out.println("3+5=" + 8); System.out.println(3.15 + "는 실수입니다."); System.out.println("3.5" + "의 연산결과는 8입니다."); System.out.println(3+5); /* 덧셈 결과 출력 */ } } 더보기
[기초] SystemOutPrintln.java class SystemOutPrintln { public static void main(String[] args) { System.out.println(7) System.out.println(3.15); System.out.println("3+5=" + 8); System.out.println(3.15 + "는 실수입니다."); System.out.println("3+5" + "의 연산결과는 8입니다.") System.out.println(3+5); } } 더보기
[기초] FirstJavaProgram.java class FirstJavaProgram /* class 파일로 변환할 때의 class 파일이름 */ { public static void main(String[] args) /* 누구나 쓸수있고 값을 공유하고 반환 값이 없는 문자열 혈태인 args 의 배열 형태 ( [] 가 배열 ) */ { System.out.println("Welcome to Java") /* Welcome to Java 가 출력 됩니다 */ System.out.println("First Java program") /* First Java program 가 출력 됩니다 */ } } 자료사용 누구나 쓸수있고 값을 공유하고 반환 값이 없는 문자열 혈태인 args 의 배열 형태 ( [] 가 배열 ) */ 원본 링크 http://cafe... 더보기