2010-01-28 4 views
1

클래스는 구조에서 진화 했습니까?클래스의 진화

+2

무엇을 의미합니까? 제발 좀 더 자세히 설명해주세요. –

+0

은 C++ 구조와 마찬가지로 멤버 변수와 클래스와 같은 함수를 가질 수 있지만 모두 공개입니다. –

+0

공개 또는 비공개는 진화와 관련이 있습니까? – Potatoswatter

답변

7

No. "클래스"개념은 Simula-67 프로그래밍 언어에서 소개되었습니다. 나는 "클래스"라는 단어 (또는 "classe")가 "유형"에 대해 스웨덴어라는 것을 모았습니다.

+2

[표창장 필요] –

+0

http://en.wikipedia.org/wiki/Simula-67 이것을 확인합니다. – Potatoswatter

+0

+1 너무 괴상한 당신이 그것을 알고있다. –

0

C++은 Bjarne Stroustrup (C++ 작성자)과의 인터뷰에서 적어도 매크로 라이브러리로 발전 했으므로 여러분이 옳다고 생각합니다.

+2

아니요 C 클래스 또는 C++이 매크로 라이브러리로 구현되었습니다. 두 가지 모두 전처리기로 구현되어 C를 내보내고 컴파일되었습니다. –

+0

전 항상 프리 프로세서가 매크로를 처리한다고 생각했기 때문에 프리 프로세서는 일종의 매크로 라이브러리로 구성되어야했습니다. –

2

C++의 원래 이름은 "클래스가있는 C"입니다. C++의 설계 목표 중 하나는 (더 좋든 나쁘 든) C와의 높은 호환성이 유지된다는 것입니다. 이 환경에서 class을 정확하게 "방법"이라는 개념을 추가하여 struct과 동일하게 만드는 것은 자연 스럽습니다.

Bjarne Stroustrup의 저서 The Design and Evolution of C++에는 C++의 역사에 대한 많은 정보가 있습니다. 주제에 관심이 있다면 적극 추천합니다.

+0

그가 CLASS를 기존 C 구조와 호환 가능하게 만드는 이유는 무엇입니까? –

+3

균일 구문의 가치가 있기 때문에. 사람들이 배우는 것이 줄어 듭니다. 노동 조합도 비슷한 구문을 사용합니다. –

+0

그렇습니다. 우리가 클래스 정의 뒤에 세미콜론을 넣고 잊어 버린다면 암호 오류 메시지를받는 이유는 무엇입니까? 네임 스페이스와 함수 & ...와 같은 다른 범위와 비슷한 것은 그 뒤에 세미콜론이 필요하지 않지만 .. 그게 내가 일관성이라고 부르는 것 – smerlin

0

C++에서 클래스와 구조체는 본질적으로 하나의 주요한 차이점이 있습니다. 액세스가 거꾸로되어 기본적으로 구조체에 대한 모든 액세스가 C에서와 동일하게 공개되지만 클래스는 private입니다. 태만.

그래도 그 질문은 아니 었나요? 호머 ...

관련 문제