본문 바로가기
코스웨어/10년 시스템제어

시스템제어(10/05/10) - C++(참조전달, 생성자, 소멸자), WinAPI(TextOut, GraphOut, MessageBox)

by 알 수 없는 사용자 2010. 5. 10.
728x90
반응형

1. C++, Linux

  - 참조전달
    1) alias : 별칭 
   
    2) car NewCar;
    car &= NewCar;//Reference
 
       -> NewCar 와 r 은 같은것. 이름만 다를뿐.
   
    3) C 에서는 포인터를 주로 사용하지만, C++ 에서는 참조를 주로 사용한다.

    4) car NewCar;
    car &= NewCar;//Reference

    r.Init();
    r.Set_Name();
    r.Set_Price();
 
       -> 참조 할때는 구조체와 같이 도트 연산자를 사용한다.    

    5) 참조를 사용하는 이유 : 함수를 호출할 때, 포인터는 포인터변수를 선언하여 사용하기 때문에 메모리의 할당이 필요하지만, 참조는 메모리 할당이 필요없다.

  - 생성자(Constructor)
    1) 객체가 생성될 때 딱 한번 호출되는 함수.  

    2) 반환형이 없다.

    3) 클래스 이름과 같다.
      ※ 참조객체는 생성될때만 초기화.
  
   ※ 사용방법  
          
car()
     {
        Init();
     }
 
    4) 생성자의 인자 타입이나 갯수가 다르다면, 이름이 같아도 사용가능함(오버로딩 허용)
      ex)
     car()
     {
        Init();
     }
  
     car(int K)
     {
        cout << K << endl;
     }

  - 소멸자(Destructor)
    1) 생성자 이름앞에 ~ 를 붙임.
    2) 생성자를 사용할 땐, 소멸자를 같이 사용하는 것이 좋음.(동적메모리 할당에서 free() 함수를 사용하는 것과 유사)
       사용방법
     ~car()
     {
        cout << "소멸자" << endl;  
     }
  


※ 생성자와 소멸자의 수행순서
    car()          ---- ①
    {}
    car2()        ----  ②
    {}

    ~car2()      ---- ③
    {}
    ~car()        ---- ④
    {}



2. WinAPI
  - TextOut
    1) 윈도우에 텍스트를 뿌려주는 함수.
    2) 다른 윈도우에 가려졌다가 다시 나타나면 가려진 부분은 지워진다. 이를 해결하기 위한 방법으로 WM_PAINT 함수를 사용.
    3) WM_PAINT : 개별 윈도우의 화면을 저장하진 않지만 대신 윈도우의 일부가 지워졌다는 사실을 알리며 바로바로 메시지를 보내주는 함수.
      ex) case WM_PAINT:
          hdc=BeginPaint(hWnd,&ps);
          TextOut(hdc, 100, 100, str, lstrlen(str));
          EndPaint(hWnd,&ps);
          return 0;

    4) BeginPaint 와 EndPaint 를 사용해야 한다.
    5) 함수 인자중에 100, 100 은 좌료를 나타낸다.
    ※ Beautiful SCA
        B의 좌측 맨위가 시작점. 시작점을 기준으로 글자가 출력된다.

  - 그래픽출력
    1) MoveTo(hdc, x, y) : 좌표를 (x,y) 로 이동하는 함수.
    2) LineTo(hdc, x, y) : MoveTo 로 이동한 좌표를 기준으로 함수내에 있는 좌표까지 직선을 긋는 함수.
    3) Rectangle(hdc, x1, y1, x2, y2) : (x1, y1) 과 (x2, y2) 두 점을 대각선으로 하는 사각형을 그리는 함수.
    4) Ellipse(hdc, x1, y1, x2, y2) : (x1, y1) 과 (x2, y2) 두 점을 대각선으로 하는 사각형에 내접하는 타원을 그리는 함수.

  - 메시지 박스

    1) 조그만 별도의 윈도우를 열어서 사용자에게 정보를 전달하거나 질문을 하는 장치.
    2) 옵션에 따라 화면에 나타나는 메시지창의 종류가 달라진다.
       ex) 메시지 박스 안의 버튼 종류나 갯수.
             아이콘 변경.
    3) 버튼의 종류에 따라 버튼의 리턴값이 다름.

728x90