프로그래밍 / C++ / 언리얼

Programming/C | C++ | Unreal

[C++ ] 구조체

아트성 2022. 4. 15. 17:29

    구조체란?

    - 변수를 모아 놓은 집합체
    - 특정 변수들이 무언가의 하위 개념으로 묶일 수 있을 때
        studentName[10], studentAge[10], studentKorScore[10] ....
        학생의 'XXX'
        이름, 나이, 국어점수, 석차 등등을 '학생' 이라는 구조체로 묶어서 사용

 

    구조체와 비교

     - 구조체 : 데이터(자료형)을 실제로 쓰이는 데이터끼리 묶어서 추상화

     - 배열 : 속성이 동일한 여러개의 데이터를 같은 이름과 순서를 지정한 연속된 번호로
             서로 연관되어 있음을 표시함으로써 추상화함
     - 함수 : 프로세스(코드)를 특정 기능 단위로 묶어서 추상화

      

 

    구조체 정의

      - 구조체가 사용되는 함수의 에 정의한다. (해당 함수의 바깥쪽 앞(위))

// main함수 앞에다!!
struct score
{
    int kor;
    int eng;
    int math;
};

struct student
{
    string name; // 클래스도 쓸 수 있고
    int age; // 기본 자료형도 쓸 수 있고
    string homeTown;
    bool Pride;
    bool Married;
    bool House; // 배열도 넣을 수 있고
    score myScore; // 하위 변수로도 넣을 수 있다.

}seyoun, jaehuck;   // 중괄호의 끝과 세미콜론 사이에다 student의 변수를 미리 선언해 줄 수도 있다.


     구조체 사용 방법

     - 구조체는 일종의 우리가 새롭게 만든 데이터형이다.
     - int / bool, float, string 같은 기본 자료형들은 모두 사용 가능

 

     구조체의 선언과 초기화

     - 기본적으로 구조체 변수의 개념은 배열 변수의 개념과 동일 / int a[3] = {50, 70, 80);
     - 구조체 변수도 다음과 같이 선언과 동시에 초기화할 수 있다.

       player.HP = player.HP = monster[n].dmg;
       주석 없이 코드를 배우지 않은 사람에게도 어느 정도의 가독성이 확보된다.

int main()
{
    student student; // 구조체 변수의 선언
    score myScore = { 50, 80, 90 }; // 배열을 초기화하듯 구조체 변수도 초기화할 수 있다.
    // monster a = {"고블린", 79, 55.12f, true, 100}

    student.name = "artsung";
    student.age = 30;
    student.homeTown = "인천";
    student.Pride = true;
    student.Married = false;
    student.House = false;
    student.myScore.kor = 95;
    
    return 0;
}

 

반응형