앞서 설명한 C++의 구조체는 클래스의 일종이다. 그렇다면 클래스와 구조체에는 어떠한 차이점이 있을까?

클래스와 구조체의 유일한 차이점

키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 된다.

class Car
{
	char gamerID[CAR_CONST:ID_LEN];
	...
	void ShowCarState() { ... }
	...
}

이렇게 키워드를 바꿔놓으면 앞서 예제에서 보였던 다음의 방식으로 변수를 선언하지 못한다.

Car run99={"run99", 100, 0}; (x)

이유는 클래스 내에 선언된 함수가 아닌, 다른 영역에서 변수를 초기화하려 했기 떄문이다. 클래스는 기본적이로 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근 가능하다. 따라서 다음과 같은형태로 클래스 변수를 선언해야 한다.

Car run99;

접근제어 지시자

접근제어 지시자를 선어하지 않았을 때 클래스는 private으로 구조체는 public 으로 선언한다.

용어정리: 객체 (Object), 맴버변수, 맴버함수

C++ 에서의 파일분할