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을 선언하여 사용할 수 있다.