[부트 캠프] C++ - 객체 배열과 포인터

Claire·2024년 9월 3일

클래스의 특징과 객체 활용

객체 배열

  • 사용자가 정의한 자료형(클래스)로 선언한 변수를 "객체"라고 명명
  • 객체의 속성은 일반 변수의 속성과 동일
  • 다수의 변수 사용 시, 배열을 선언한 것처럼 객체 또한 배열로 선언 가능 => "객체 배열"
  • 배열은 기본적으로 같은 타입만 가능

객체 배열의 선언 형태

  • 사용자 정의 자료형인 클래스명을 쓰고, 객체명을 선언하되, 객체명에 배열 표시인 대괄호([])로 요소의 개수를 감싸면 된다.
  • 객체 배열 구조

    클래스명 객체명[요소 개수]
    MousePoint pt[3]; // 3개의 객체를 생성한다고 선언하는 것

객체 배열의 활용

  • 객체 배열로 멤버 함수를 명시적으로 호출하는 경우

    pt[0].setXY(10, 20);
     pt[1].setXY(100, 200);
  • 객체 배열의 경우도 생성자를 호출할 수 있다.

  • 각 객체 배열별로 초기화 시, 생성자가 호출됨

  • 객체 배열을 생성자를 이용하여 초기화 하는 방법은 아래와 같다.

    MousePoint pt[3] = {MousePoint(10, 20), MousePoint(30, 40), MousePoint(50, 60)};
    //MousePoint 타입의 객체 배열 생성이기에 요소값으로 동일한 MousePoint타입만 선언 가능
    객체 배열 예제
    MousePoint pt[3] = { MousePoint(10, 20), MousePoint(30, 40), MousePoint(50, 60) };
    cout << "1번째 요소의 x좌표 : " << pt[0].GetX() << endl;
    cout << "1번째 요소의 y좌표 : " << pt[0].GetY() << endl;
    cout << "2번째 요소의 x좌표 : " << pt[1].GetX() << endl;
    cout << "2번째 요소의 y좌표 : " << pt[1].GetY() << endl;
    cout << "3번째 요소의 x좌표 : " << pt[2].GetX() << endl;
    cout << "3번째 요소의 y좌표 : " << pt[2].GetY() << endl;
    출력결과
    1번째 요소의 x좌표 : 10
    1번째 요소의 y좌표 : 20
    2번째 요소의 x좌표 : 30
    2번째 요소의 y좌표 : 40
    3번째 요소의 x좌표 : 50
    3번째 요소의 y좌표 : 60

객체 포인터

  • 객체의 주소값을 저장하기 위한 변수
  • 객체를 간접 참조하기 위해 사용
    MousePoint *pObj;
     MousePoint pt(10, 20);
     pObj = &pt;
  • 포인터 변수가 가리키고 있는 메모리는 "객체 메모리"
  • 한 개의 변수(x or y)에 대한 포언터가 아닌 pt 객체에 대한 포인터
profile
SEO 최적화 마크업 개발자입니다.

0개의 댓글