클래스 (Class)와 구조체 (Struct)의 차이

 

구조체와 클래스

1
2
3
4
5
6
7
8
9
10
11
12
13
struct Point {
 
    int x, y;
 
};
 
 
int main() {
 
    Point p = { 1,2 };
 
    return 0;
}
cs

 

구조체는 구조체를 만들어준 =뒤, main()에서 p를 선언하고 구조체를 초기화해주면 된다. 

여기서 struct 대신 class를 써주면 클래스가 된다. 그런데 클래스로 바꿔주면 컴파일 과정에서 오류가 발생한다.

클래스와 구조체 모두 데이터를 묶어주는 역할을 하는데 오류가 발생하는 이유는 무엇일까 

그 이유는 구조체와 클래스의 기본 접근제어 지시자가 다르기 때문이다. 

구조체의 경우 접근제어 지시가를 따로 선언하지 않으면 모든 변수와 함수가 public으로 선언되고 

클래스의 경우 private로 선언된다. 따라서 구조체를 클래스로 바꿀 경우 main()에서 클래스 내부의

private로 보호되고 있는 변수와 함수에 접근하지 못해 오류가 발생하게 되는것이다. 

 

구조체와 클래스의 차이는 선언에 따른 차이이다.

구조체 -> public 

클래스 -> private

'c++' 카테고리의 다른 글

가변 길이 템플릿  (0) 2020.08.28
함수 템플릿  (0) 2020.08.27
템플릿 (Template)  (0) 2020.08.27
오버라이딩, 가상함수  (0) 2020.08.20
String class  (0) 2020.08.18
TAGS.

Comments