본문 바로가기

Study/C++

[C++] Structure

C++의 구조체

  • 구조체는 연관 있는 데이터를 묶을 수 있는 문법적 장치로, 하나의 구조체에는 서로 다른 종류의 데이터가 들어갈 수 있다.
struct Student
{
	string Name;
    int sNumber;
    int level;
}
  • C에서의 구조체와 C++의 구조체의 차이점은 다음과 같다.
  • 먼저 C에서는 구조체 변수 선언을 위해서는 struct 키워드를 선언하거나, 구조체 자체에 typedef를 선언하여 별칭을 정의한 뒤 선언해야한다.
// C
struct Student
{
	string Name;
    int sNumber;
    int level;
};

int main(void)
{
	struct Student zelda;
}
--------------------------
typedef struct Student
{
	string Name;
    int sNumber;
    int level;
} STU;

int main(void)
{
	STU zelda;
}
  • 하지만 C++에서는 별도의 typedef 선언 없이도 변수 선언이 가능하다.
// C++
struct Student
{
	string Name;
    int sNumber;
    int level;
};

int main(void)
{
	Student zelda;
}
  • 또 하나의 특징은 C의 경우, 구조체 내부에 함수 선언이 불가능 하지만, C++의 경우 함수 선언이 가능하다.
  • 이 함수는 외부로 뺄 수 있다.
struct Student
{
	string Name;
    int sNumber;
    int level;
    
    void sayHello()
    {
    	cout << "Hello World!";
    }
};

int main(void)
{
	Student zelda;
}
---------------------------------
struct Student
{
	string Name;
    int sNumber;
    int level;
    
    void sayHello();
};

void Student::sayHello()
{
    cout << "Hello World!";
}

int main(void)
{
	Student zelda;
}
  • 추가적으로 구조체 내부에는 enum을 선언하여 사용할 수 있다.

'Study > C++' 카테고리의 다른 글

[C++] Information Hiding  (0) 2023.10.06
[C++] OOP; Object-Oriented Programming  (0) 2023.10.06
[C++] Class & Object  (0) 2023.10.06
[C++] Call by value / Call by reference  (0) 2023.10.06
[C++] Const  (0) 2023.10.06