목록전체 글 (1259)
바람이 머문 언덕
C++ 에서는 I/O 스트림이라는 입출력 기능을 제공 하는데 C++ iostream은 cin과 cout라는 오브젝트가 포함되어 있어서 C에서 보다 좀 더 쉽게 입출력을 할 수 있다. #include int main(int argc, _TCHAR* argv[]) { int i=9; char a[125] = " 입니다."; std::cout
operator를 이용 해서 연산자를 재정의 해서 문자를 연산자로 추가 삭제하는 예제를 만들어 보았습니다. 이 기능은 mfc의 CString, 베이직과 같은 고급 언어에서는 익숙한 기능으로 operator 를 이용해 연산자를 재정의 해놓으면 문자열을 가지고 작업 할 때 편한게 사용 할 수 있습니다. 고급 언어에서 사용하는 기능들 처럼 여러 가지 함수를 넣지는 안고 간단히 operator를 가지고 연산자를 재정의 하는 방법과 이해를 돕기 위해서 몇 가지 연산자를 사용해서 만들어 보았습니다. 앞에 operator를 설명하면서 간단히 동적 메로리 할당을 이용해서 문자 열을 추가 삭제 가능 하도록 만들어 보았는데 그 때는 아무런 이상이 없었는데 동적 메모리를 사용하니 에러가 나는 부분이 있었습니다. 전역 변수는..
기본적으로 제공해주는 창태 창을 이용해서 윈도우를 이동 시키면 편하지만 상태 창을 위도우에 넣지 않고 윈도우를 만들어야 할 때가 있다. 그 때 윈도우를 이동 시키려고 하면 MoveWindow라는 api 함수를 이용해야 한다. MoveWindow 함수 사용을 좀 더 편하게 하기 위해서 앞에서 만든 클래스를 이용해서 예제를 만들었다. 실행 파일과 소스는 아래에 첨부 했고 여기서는 간단한 이용 예만 적어 보았습니다. #include class movewindow { public: movewindow(); ~movewindow(); void bottonup(); void move(int x,int y); void bottondown(int x, int y,HWND h); private: bool ifla; HW..
c++에서 새로 생긴 개념 함수 오버로딩과 디폴트 인수 그리고 reference는 어떤 개념일까? 함수 오버로딩 : 함수 오버로딩이라고 특별하게 어떤 것을 적어 주어야 하는게 아니고 이름이 같아도 전달인자가 다르면 C++에서는 다른 함수로 인식하게하여 전달인자가 다른 함수는 같은 이름을 사용해도 되게 만든 기능을 함수 오버로딩이라 한다. 예) int add(int a, int b); float add(float a, float b); 위의 예처럼 정수와 실수를 더하는 두 함수처럼 전달이자가 다르기 때문에 함수이름을 같게 만들어도 c++에서는 서로 다른 함수로 인식하기 때문에 사용하는데 이상이 없다. 디폴프 인수 : C++에서는 디폴트 인수라는 또 하나의 편리한 기능을 제공 한다. 어떤 함수를 호출 할 때..
변수는 크게 로칼 변수와 글로벌 변수가 있는데 로칼 변수는 사용 범위에 제한이 있다. c 언어에서는 변수를 함수 시작 부분에 정의 해주어야 하기 때문에 변수의 사용 범위는 함수 내라고 할 수 있으나 c++에서는 함수 내의 어느 곳이나 선언 할 수 있기 때문에 변수의 사용 범위는 변수 선언 이후라고 할 수 있다. 간단한 예) int b = 0; // 글로벌 변수는 함수 밖에서 선언되며 프로그램 종료시 소멸 된다. int main(void) { int i = 0; // i의 사용 범위는 main 함수 내이다. for( int k = 0; k < 5; k++) // k는 for문 내에 선언 하였기 때문에 for문이 종료되면 소멸되기 때문에 { // for 문 밖에서 사용하면 에러가 난다. i += k; } r..
2에서 9사이의 두 수를 입력 하면 세 줄씩 구구단을 텍스트 파일에 출력합니다. 입력 한 두 수 중에 앞에 값이 작으면 작은 수부터 출력하고 앞에 값이 크면 반대로 큰 수부터 구구단을 출력 합니다. #include #include #include int main() { FILE* file; int i, n, k, k1, s=1, t, t1; // k2, file = fopen("temp.txt","wt"); // 파일을 쓰기 위해서 열고 파일이 있으면 데이트는 삭제, 없으면 생성. if(file == NULL) return 0; printf("2에서 9사이의 두수를 입력하세요: "); scanf(" %d %d", &i , &k); // 출력 할 구구단 범위를 입력 받는다. if(i>k) // 먼저 출력 ..
2에서 9사이의 두 수를 입력 하면 세 줄씩 구구단을 출력 합니다. 입력 한 두 수 중에 앞에 값이 작으면 작은 수부터 출력하고 앞에 값이 크면 반대로 큰 수부터 구구단을 출력 합니다. #include #include int main() { int i, n, k, k1, k2, s=1; printf("2에서 9사이의 두수를 입력하세요: "); scanf(" %d %d", &i , &k); // 출력 할 구구단 범위를 입력 받는다. if(i>k) // 먼저 출력 할 구구단이 크면 { s=-1; } while(i>1 && i
프로그램은 실행은 CPU가 담당하는데 CPU는 역시 메인 메모리(RAM)에 올라온 데이터를 가지고 실행을 하게 됨니다. 프로그램도 메모리에 올라간 다음에 실행되는데 함수의 이름은 메모리 사이에 존재하는 함수의 위치를 가리키는 주소 값을 의미 합니다. int i; 에서 변수 i가 정수형 값을 저장하는 주소를 나타내 것 처럼 함수명도 함수의 저장 위치를 나타내는 것입니다. 함수도 포인트 변수를 선언 할 수 있는데 함수의 포인트 형을 결정 짓는 요소는 리턴형과 전달 인자로 int (*pfun) (char );라고 선언 했다고 하면 pfun은 포인트 변수 명되고 int형 을 리턴하며 전달인자로 char형을 가지는 함수의 주소를 값으가지는 함수 포인트를 선언한 것입니다. 함수 포인트의 사용 할 수 있는 곳은 많은..