상속 접근 지정자 부모 클래스의 접근 속성 자식 클래스의 접근속성 public (default) public public private 접근 불가 protected protected private public private private 접근 불가 protected private protected public protected private 접근 불가 protected protectedpublic 상속은 기본 속성을 그대로 가져온다. 일반적인 경우 대부분 public 상속을 이용하면 된다. private 상속은 부모 클래스의 private을 제외한 멤버를 private속성으로 가져온다. 부모 클래스의 멤버를 숨길때 사용한다. protected 상속은 부모 클래스의 private을 제외한 멤버를 prote..
- C언어에서의 변수는 선언 장소와 키워드에 따라 각기 다른 공간에 저장된다. - 변수의 수명도 선언 장소와 키워드에 따라 다르다. 영역 함수 또는 클래스 스택 영역(Stack Segment) 지역변수, 매개변수와 같이 쓰고 지우는 일이 빈번한 데이터는 스택영역을 사용한다. 스레드 당 1개씩 생성되며, 기본 크기는 1MB이다. 이 용량을 초과할 경우 Stack Overflow가 발생한다. 데이터영역(Data Segment) 정적 데이터 (Static) 코드 내에서 static 키워드로 생성된 데이터로써, 프로그램 생성시 할당되어, 프로그램이 종료 될 때까지 존재한다. 지역, 전역, 멤버 모두 정적 변수 영역에 생성 된다. 지역 정적 변수만 해당 코드가 수행되는 순간 초기화 되고, 나머지 정적 변수들은 프..
32비트 윈도 운영체제에서 하나의 프로그램은 4GB의 메모리 영역을 가질 수 있다. 그러나 4GB를 모두 어플리케이션 마음대로 사용할 수 있는 것은 아니고, 상위 2GB만 프로그램이 사용할 수 있도록 하였고, 하위 2GB는 Windows가 실행된 프로그램을 관리하기 위한 코드가 적재된다. 위의 스택, 코드 등의 영역은 하위 2GB에 포함된다. 가상 메모리상태 (Virtual Memory Status) 1. 램에 맵핑된 상태, 하드 디스크에 맵핑된 상태 2. 사용이 예약되어 읽거나 쓸 수 있는 상태 3. 초기 상태 등급 내용 Committed 물리적 메모리에 맵핑된 상태의 메모리 영역이다. Commit 상태의 메모리 영역은 읽거나 쓸 수 있다. VirtualAlloc()을 통하여 Commit 상태로 변경할..
자~ 간만에 C++ 이야기입니다~! C언어의 난이도를 몇배로 높여준! 많은 사람들이 C언어를 포기하게 만든 원흉! 포인터부터 얘기해보죠. 포인터(*)란 아시다시피, 메모리 주소를 가리키는 변수입니다. 가리키는 곳은 언제든 변할 수 있고, 아무곳도 가리키지 않는 상태(NULL 포인터)도 있습니다. 참조자(&)란 뭘까요? 참조자는 변수의 다른 이름입니다. 포인터와 비슷하죠? 포인터와의 차이점은 참조자는 아무것도 가리키지 않는 상태가 없다는 것입니다. 포인터가 어려운 이유는 사용법 자체가 아니라 관리가 어렵기 때문입니다. 다음 코드를 살펴 보시죠. 포인터로 인해 발생할 수 있는 몇가지 상황을 보여줍니다. int *pDynamic= new int; int *ptr= pDynamic; delete pDynamic..
C 프로그래머가 알아야 할 것들 - Chapter 8 스레드 김성훈 (sunghun84@nate.com) (1) 프로세스와 스레드 스레드를 이해하려면 프로세스에 대한 이해가 선행되어야 합니다. 프로세스란 프로그램이 실행되는 단위를 말합니다. 지금 제가 이 문서를 작성하고 있는 OpenOffice도 프로세스고, 음악을 듣고 있는 aimp2도 프로세스, 메신져인 pidgin 모두 프로세스입니다. 일반적으로 프로그램의 실행 단위가 프로세스라고 보시면 됩니다. (한 프로그램 내에 여러 프로세스를 묶어 하나처럼 보이게 하는 경우도 있지만, 이런 경우는 예외로 생각하겠습니다.) 저는 지금 메신져를 켜놓고, 음악을 들으며 문서 작성을 하고 있는데요, 이렇게 세가지 작업을 한꺼번에 할 수 있는 것은, 윈도우즈가 멀티 ..
#ifdef _UNICODE #define _QUOTE(x)L ## x #define QUOTE(x)_QUOTE(x) #define _TO_STRING(x)# x #define TO_STRING(x)QUOTE(_TO_STRING(x)) #define __TFILE__QUOTE(__FILE__) #define __TFUNCTION__QUOTE(__FUNCTION__) #define __TLINE__TO_STRING(__LINE__) #define ENUM_TO_STRING( Enum )TO_STRING( Enum ) #else #define _QUOTE(x)# x #define QUOTE(x)_QUOTE(x) #define __TFILE____FILE__ #define __TFUNCTION____FUNCT..
- R-Value를 써라 if문에서 변수를 Right Value로 두어라. 실수로 비교문(==)이 아닌 대입문(=)이 사용했을 때의 실수를 막아준다. - 상수성(const 키워드)을 애용하라. 변경이 이루어지지 말아야 할 변수나 함수에 const 값 적극 이용하라. const는 변경이 되면 안되는 상황을 인지하게 해준다. - IN,OUT 매크로를 적극 활용하라 함수 인수의 IO가 어떻게 이뤄지는 IN, OUT 매크로를 써서 명시하라. - 리턴값은 enum형이나 define으로 정의해서 공통된 값을 적극 사용하라. 통일성 있는 규칙은 코드 분석이나 디버깅시에 직관적이다. - 전역 변수는 자제하라. static 변수나, 전역변수의 소멸 시점은 잡기 어렵다. 생성/소멸 순서가 중요하다면 특히나 static 또..
- Total
- Today
- Yesterday
- TraceRoute
- SQLite Spy
- 임백준
- 루비
- c언어
- RoR
- CppSQLite
- Ruby on Rails
- perfmon
- 좋은 프로그래머
- 엘키
- 디자인 패턴
- 디버깅
- TDD
- 리버스 엔지니어링
- ftp
- 게임개발포에버
- 루비 온 레일즈
- Rails
- MS-SQL
- 조엘 온 소프트웨어
- 바로가기 프로그램
- SDL
- 게임데브포에버
- 멀티스레드
- EzShortcut
- NDC2013
- ruby
- EasyExec
- svn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |