2011-09-08 11 views
1

++ 그 이유가없는 경우, 당신은 당신이 C에서와 또 다른 하나를 만들 구조체 또는 클래스 한정자를 사용합니다이C의 구조체와 클래스 ++

struct foo { 

} 

같은 구조체 나 클래스를 만드는 경우? 언제는 C++

구조체 foo는 A의 그것을 사용하는 것이 적합 할 것이다 C에서 인스턴스화 동안

덕분에

+0

구조체는 C++에서 공용 클래스로 동작하고 새로운 유형을 생성하므로 struct 키워드를 사용하여 변수를 만드는 것은 순전히 선택 사항입니다. –

+1

@rubixibuc - 적절한 'C++'태그가 추가되었습니다. – Mahesh

답변

3

struct가 필요하지 않은 말을하여. C++에서 structclass의 유일한 차이점은 struct의 경우 기본적으로 이고 class의 멤버는 기본적으로 private입니다.

3

없음 :-), struct 키워드 ++ 필요하지 않습니다. 그런데 구조체 정의는 ;으로 끝나야합니다.

1

C에서는 typedef를 사용하여 피할 수 있습니다. C++에서는 타입이 자동으로 생성되므로 명시 적으로 명시 할 필요가 없습니다.

C 구문이 비슷한 만들려면 :

typedef struct { 
.... 
} foo; 

그런 다음 당신이 그것을 사용할 수 있습니다 foo x;

2

가능하지만 그렇게 할 필요는 없습니다. C++의 설계자는 C의 태그 개념이 불필요하게 복잡하다고 생각합니다. 그 이유는 코드를 순수한 C와 혼합하려고하지 않는다면 적절한 C++ 스타일이기 때문입니다. 나는 동의하는 경향이있다.

관련 문제