프로그래밍/C and C++
-
함수 포인터란?프로그래밍/C and C++ 2005. 7. 3. 01:40
1. 함수 포인터란?- 프로그램에서함수의 이름은 메모리에 로드된 그 함수의 실행코드 영역의 시작주소를 의미한다.- 함수에 대한 포인터는 바로 함수의 시작주소값을 갖는 포인터이다. 함수 포인터라는 것 역시 32비트 체제하에서 4바이트의 메모리를 갖는 포인터 변수 입니다. 일반 포인터 변수와 다른 점은 일반 포인터 변수가 변수들의 주소값을 저장하는 반면에 함수 포인터는 함수의 주소값을 갖는다는 것입니다. 함수는 code 부분입니다. 즉 프로그래머가 짠 코드가 컴파일 되어서 기계 코드로 변화된 것, 그것이 바로 code 입니다. 프로그램이 실행되기 위해서는 이 code가 메모리에 올라가 있어야 하는 것입니다. 여기서 어떤 함수의 호출은 이 code중에서 그 함수 부분으로 jump(이동) 하는 것이지요. 바로 ..
-
C++ 클래스와 동적 메모리 할당프로그래밍/C and C++ 2005. 6. 30. 04:55
제3 강 클래스와 동적 메모리 할당동적 메모리란 실행 시간에 할당되어 사용되는 메모리 블록을 말한다. C에서는 동적 메모리를 heap이라고 하지만 C++에서는 Free Store라고 부른다. c++의 new 연산자는 자신이 할당하는 오브젝트의 데이터형, 즉 클래스를 알고 있을뿐만 아니라 자동적으로 클래스의 생성자를 호출하여 할당된 메모리를 적절한 값으로 초기화 한다. Mydata *p;p=new Mydata;p->DisplayData();p=new Mydata(600,700);p->DisplayData(); new는 연산자이므로 매개 변수를 필요로 하지 않는다.또한new 연산자는 메모리를 할당할 오브젝트의 크기와 데이터형을 알고 있으므로 그 데이터형의 포인터를 리턴해 준다. new 연산자를 이용하여 다차..
-
Class vs Object 한글 파일 정리프로그래밍/C and C++ 2005. 6. 27. 06:53
class%C1%A4%B8%AE.hwp Class vs ObjectChapter 1 클래스란 무엇인가?Chapter 2 생성자 함수Chapter 3 소멸자 함수Chapter 4 포함 오브젝트Chapter 5 오브젝트 배열과 오브젝트 동적할당Chapter 6 static 변수와 함수Chapter 7 friend 함수와 클래스Chapter 8 상속(Inheritance)Chapter 9 가상함수(virtual function)Chapter10 다중 상속Chapter 11 연산자 오버로딩Chapter 12 파일 스트림 한글 2004로 정리
-
C++ 기초 강좌 한글 정리프로그래밍/C and C++ 2005. 6. 27. 06:50
C++%B1%E2%C3%CA-626.hwp C++ Programming1시작하면서16읽기 전용 레퍼런스2OOP란?17메모리 동적 할당3cout18메모리 힙을 위한 new4cin19delete 으로 메모리 해제5cerr20함수간의 매개 변수 전달6출력형식 조작21레퍼런스에 의한 호출7입력 조작22레퍼런스전달의 효율성,안전성8영역지정 연산자23레퍼런스 Return(반환)9const 변수24디폴트 매개변수10함수에서 매개변수 전달25Overload 함수11inline 함수26연산자 오버로딩12void 포인트27Class 만들기13레퍼런스(References)28클래스와 구조체 비교14상수에 대한 포인트29접근지정자(public,private)15포인트 상수30멤버 함수 한글2004로 정리 페이지 약 24페이지..
-
fread 예제프로그래밍/C and C++ 2005. 6. 21. 19:22
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 32 33#include using namespace std; const string FReadAll ( const char* pszPath ) { long lFileSize = 0; size_t iReadLength = 0; char* ptrBuff = 0; FILE* stream = 0; string strRet; stream = fopen ( pszPath, "r+t" ); if ( 0 == stream ) return ""; fseek( stream, 0, SEEK_END ); lFileSize = ftell ( stream ); fseek( str..
-
Type Cast프로그래밍/C and C++ 2005. 6. 21. 19:21
MFC 나 템플릿 관련소스를 보면 좀 낯설은 코드를 볼수 있습니다. 이 낯설은 코드중에 ?_cast 라는 키워드에대해서 말하고자 합니다 . 이 키워드는 표준 c++에서특이할 만한 것들입니다. 아래 설명되어진 내용이 정확한지 모르겠습니다.더 좋은 설명이 있으면 뎃글로 남겨 주세요...... 타입변환(cast) static_cast( 보편적인 타입 변환 ) const_cast( 상수 타입 변환 ) dynamic_cast( 상속 계층과 관련된 타입 변환: 제5장 참조 ) reinterpret_cast( 포인터 타입 변환 ) ----------------------------static_cast 다른 타입으로의 변환 일반적인 타입변환 C에서의 타입변환 average = ( float ) hits / ( floa..
-
fseek(), ftell(), fread(), fwrite()프로그래밍/C and C++ 2005. 6. 21. 19:21
2> fseek(), ftell()-----------------------------------------------------------------------우리는 모니터 화면에 커서가 있는것을 안다. 이것은 텍스트 모드에서 뿐만 아니라 그래픽 모드에서도 마찬가지 였다. 글자나 점 하나를 모니터의 특정한 곳에 찍고 싶으면, 이 커서를 그 곳에다 갖다 놓고 그다음 찍는행위를 해야한다.이와같은 개념은 "파일"을 취급할 때도 마찬가지이다. 하지만 파일은 하드디스크에 들어 있는 것이기 때문에, 모니터처럼 고정된 좌표를 가지지 못한다는 것에 큰 차이가 있다.언젠가 파일을 "두루마리 편지"라고 비유한 적이 있는데, 이제 현대식으로 다시 비유를 해보면, 도트 프린터의 "연속용지"에 파일이 전부 인쇄된 것과 유사하..