C++에서 구조체와 클래스의 차이가 구조체는 디폴트 접근 제어 레벨이 public이고 클래스는 private이다. 이거 외에 또 다른 차이점 좀 알려주실분
인터넷에 찾아봐도 별로 도움이 되는 글이 없어서 질문 올림
댓글 6
문법적 차이는 그게 끝임. class 해놓고 바로 public으로 선언하면 struct랑 완벽히 똑같음. 그런데 struct는 C에도 있는 키워드고 메소드를 정의하지 않으면 C에서도 별도의 수정 없이 그대로 컴파일이 가능하기 때문에 C와의 호환성을 고려해야 하는 환경에선 struct를 사용하는게 나음
F#(bluegkstjr)2022-06-22 10:27
답글
좋은 정보 ㄳㄳ. 하나 더 찾은게, 구조체는 스택영역에서 클래스는 힙영역에서 생성된다는 점이 있다고 하더라.
익명(125.186)2022-06-22 10:47
답글
구조체 스택 클래스 힙 그건 C# 얘기 아님?
Coma(bmh4080)2022-06-22 11:04
답글
구조체 스택 클래스 힙은 C++이 아니라 C#얘기고 그마저도 몇몇 예외사항이 있음... C++은 애초에 스택/힙을 본인이 선택할 수가 있는데 왜...
F#(bluegkstjr)2022-06-22 11:17
기본 상속 접근제한자도 다름
익명(116.124)2022-06-22 11:19
어셈블리적으로 봤을때는 완전히 똑같음. 다만 이 데이터를 클래스로 표현할지, 아니면 단순한 컨테이너로 표현할지를 구분하기 위한 이유가 크다고 봄.
문법적 차이는 그게 끝임. class 해놓고 바로 public으로 선언하면 struct랑 완벽히 똑같음. 그런데 struct는 C에도 있는 키워드고 메소드를 정의하지 않으면 C에서도 별도의 수정 없이 그대로 컴파일이 가능하기 때문에 C와의 호환성을 고려해야 하는 환경에선 struct를 사용하는게 나음
좋은 정보 ㄳㄳ. 하나 더 찾은게, 구조체는 스택영역에서 클래스는 힙영역에서 생성된다는 점이 있다고 하더라.
구조체 스택 클래스 힙 그건 C# 얘기 아님?
구조체 스택 클래스 힙은 C++이 아니라 C#얘기고 그마저도 몇몇 예외사항이 있음... C++은 애초에 스택/힙을 본인이 선택할 수가 있는데 왜...
기본 상속 접근제한자도 다름
어셈블리적으로 봤을때는 완전히 똑같음. 다만 이 데이터를 클래스로 표현할지, 아니면 단순한 컨테이너로 표현할지를 구분하기 위한 이유가 크다고 봄.