[c++] C++ 구조체와 클래스의 차이점
C++ 구조체와 클래스의 차이점
C++에서 구조체(struct)와 클래스(class)는 유사한 기능을 가지고 있지만, 몇 가지 중요한 차이점이 있습니다.
구조체(struct)
구조체는 C 언어에서 유래된 개념으로, 변수와 함수를 묶어 하나의 새로운 자료형을 정의합니다. 구조체의 멤버 변수는 기본적으로 public이고, 함수 멤버는 일반적으로 사용되지 않습니다.
struct Point {
int x;
int y;
};
클래스(class)
클래스는 C++에서 새롭게 도입된 개념으로, 구조체에서 제공하는 기능에 더해, private 및 protected 접근 제어 등의 개념을 포함합니다. 클래스는 멤버 함수를 통해 객체의 동작을 정의할 수 있어, 좀 더 객체 지향적인 프로그래밍을 할 수 있습니다.
class Circle {
private:
double radius;
public:
void setRadius(double r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
};
차이점
- 접근 제어
- 구조체는 기본적으로 public 접근 제어를 갖지만, 클래스는 private 및 protected 접근 제어를 사용할 수 있습니다.
- 기본 접근 제어
- 구조체의 멤버 변수는 기본적으로 public이지만, 클래스의 멤버 변수는 private입니다.
- 기본적인 동작
- 구조체는 기본적으로 함수 멤버를 포함하지 않을 수 있지만, 클래스는 멤버 함수를 포함해야 합니다.
이러한 차이로 인해, 클래스는 일반적으로 보다 복잡한 기능을 제공하기 위해 사용되고, 구조체는 간단한 데이터 그룹을 표현하기 위해 사용됩니다. ```