[C++] 구조체 Struct와 클래스 Class

강한·2024년 3월 21일

CPP

목록 보기
2/18
post-thumbnail

구조체 Struct

-사용자 정의 자료형
-멤버가 기본적으로 있다는 점을 제외하고 클래스와 동일하다.
-구조체의 기본 접근 제한자는 Public
-데이터를 표현하는 용도로 단순한 데이터들을 표현하려면 구조체를 사용하자.

선언

struct UserData {
	int num;
	char name[30];
}

접근 및 초기화

int main() {
	UserData data ={1, "strong"};
	
	// 혹은
	
	UserData data;
	data.num = 2;
	data.name = "ganghan";
}

클래스 Class

  • 기본 접근 제한자가 Private
  • 캡슐화 및 추상화에 초점이 맞춰져있다.
  • 구조체를 사용하는 상황이 아니라면 모두 클래스를 사용하자.

선언

class Complex {
public:
	// 생성자 -> 오버로딩
	Complex() {
		real = 0;
		img = 0;
	}
	Complex(int r, int i) {
		real = r;
		img = i;
	}
	
private:
	// 멤버변수
	int real;
	int img;
};

int main() {
	int a = 10;
	int b(20);
	
	Complex c1 = Complex();
	Complex c2 = Complex(10, 20);
}

C++로 처음 bfs를 쓸 때 구조체와 클래스 중 어떤 걸 써야 할지 몰라서 찾아봤는데 간단한 노드는 구조체를 쓰는 게 맞았다. 클래스를 사용하는 상황이 생겨야 더 제대로 구분이 가능할 것 같다.

profile
의지 강한 게임개발자

0개의 댓글