경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 20220602 2022/04/04~2022/12/13

Jinho Lee·2022년 6월 2일
0

경일 메타버스 20220602 9주차 3일 수업내용. C++ 프로그래밍 문법

  • C++ 활용 이유 : 내부 동작을 잘 보기 위함. → 다른 객체 지향 언어는 내부 동작을 보기 어려움.

클래스 (추가 설명)

  • https://en.cppreference.com/w/cpp/language/class

  • 클래스는 사용자 정의 타입으로 아래와 같은 멤버(Member)를 가질 수 있다. 멤버는 클래스의 구성 요소를 의미한다.

    • 데이터 멤버

      • 데이터를 저장한다. 다시 말해 객체다.
      • 필드(Field)라고도 한다.
    • 멤버 함수

      • 타입의 기능 부분이다.
      • 메소드(Method)라고도 한다.
    • 내부 타입(Nested Type)

      • 클래스 안에 다른 클래스를 만들거나, 열거형, 혹은 타입 별칭(typedef, using 등)을 지정할 수 있다.
    • 멤버 템플릿

      • 템플릿을 작성할 수도 있다. 템플릿은 후술.
    • 2022. 06. 02 클래스의 정의 예시 코드

    • 각 멤버는 접근 한정자(Access Specifier)를 통해 클래스 외부에 공개 여부를 구분지어 설계한 의도대로만 사용하게 강제할 수 있다.

    • class 대신 struct를 사용하면 기본 접근 지정자public으로 달라진다.

// struct의 기본 접근 지정자는 public이다.

struct B

{

	int PublicData;

};

인스턴스 멤버

  • 클래스가 가질 수 있는 멤버는 크게 비정적 멤버(Non-static Member)와 정적 멤버(Static Member)로 나눌 수 있다.

    • 비정적 멤버는 인스턴스사용하는 멤버이며, 정적 멤버는 인스턴스관계없이 사용하는 멤버다.

    • 그래서 비정적 멤버인스턴스 멤버라고도 한다.

  • 비정적 멤버 함수에서는 인스턴스의 주소를 담고 있는 this 포인터라는 것으로 인스턴스의 데이터를 접근할 수 있다.

  • 비정적 멤버 함수에는 const 수식이 가능

  • const로 수식된 비정적 멤버 함수에서는 데이터 수정이 불가능

  • 2022. 06. 02 인스턴스 멤버 예시 코드

특수한 멤버 함수

정적 멤버

  • https://en.cppreference.com/w/cpp/language/static

  • static 키워드 -> 정적 멤버

  • 정적 멤버는 프로세스 주소 공간 중 (정적)데이터 영역을 사용

  • 정적 멤버는 타입 별로 단일의 멤버로 존재

    • 따라서 정적 멤버는 인스턴스의 크기에 관여하지 않는다.
  • 정적 데이터 멤버는 상수 이외에는 정의가 안된다.

  • 정적 멤버 함수(정적 메소드)는 인스턴스 메소드가 아니다

    • 따라서 정적 메소드는 const 수식이 불가능하다.

    • 또한 this 포인터가 존재하지 않는다.

  • 반대로 인스턴스 메소드에서 정적 메소드는 호출 가능하다.

  • 정적 멤버 함수(정적 메소드)는 또한 단독으로도 호출 가능하다.

  • 2022. 06. 02 정적 멤버 예시 코드

  • 2022. 06. 02 정적 멤버 실습 코드 Timer & Random & Text & Input

선언 / 정의 / 할당 / 초기화

  • 선언(Declaration) : 식별자를 컴파일러에게 알려주는 것

  • 정의(Definition) : 선언의 일종으로, (컴퓨터의 입장에서)식별자와 관련된 모든 정보를 제공하는 구문

    • int a;
      // ㄴ정의이다. 이 식별자를 이용하기 위해 필요한 정보(메모리 주소, 타입)은 전부 제공되었다.
  • 할당(Assignment) : 메모리에 데이터를 저장하는 것

    • 메모리 할당(Memory Allocation) : 메모리 공간을 갈라 나누어 쓰는 것
  • 초기화(Initialization) : 선언과 함께 할당하는 것

0개의 댓글