C구조와 C++구조
C&C++ 구조의 주요 차이점이 무엇인지 알려주시겠습니까?
C++인struct
그리고class
구조체 기본값이public
가시성 및 클래스 기본값은private
육안성의
C에서 구조 이름은 자체 네임스페이스에 있으므로, 구조 이름이 있는 경우struct Foo {};
, 너는 글을 써야 한다.struct Foo foo;
C++에서는 해당 유형의 변수를 만들 수 있지만Foo foo;
C 스타일도 허용되지만.C 프로그래머는 보통 사용한다.typedef struct {} Foo;
변수 정의에 대해 C++ 구문을 허용한다.
또한 C 프로그래밍 언어는 가시성 제한, 회원 기능 또는 상속을 지원하지 않는다.
C와 C++ 구조에는 몇 가지 차이가 있다.
C에서는 구조 유형 값을 생성하기 위해 구조 키워드가 필요하지만 C++에서는 필요하지 않다고 정의한다.
C에서는 구조물의 내부에 함수가 없고 C++에서는 구조의 데이터 멤버에 직접 접근할 수 있는 함수를 정의할 수 있다(함수는 C++에서 메서드로 이름임).
C++에서는 접근 수식어(예: 사설 및 공용)를 찾을 수 있는 반면 C에서는 구조 내부에 접근 수식어 개념이 없다.기본적으로 모든 것이 공개적이다.
C의 구조는 정적 부재를 가질 수 없고 C++ 구조에서는 정적 부재를 가질 수 있다.
빈 구조물의 크기는 C에서는 제약조건 위반이지만 C++에서는 항상 1이다.
C++에서는 구조체에 대한 포인터와 참조를 둘 다 가질 수 있지만, 구조체에 대한 포인터만 허용된다.(참고는 C언어의 특징이 아니다)
C 구조체는 복합 데이터 구조의 정의와 더 유사하다.
C++ 구조체는 클래스로 생각할 수 있지만 모든 회원 변수의 범위는 공개로 디폴트된다.
C++에서는 구조물이 클래스처럼 동작하여 방법, 생성자, 소멸자 등을 허용한다.
클래스와 C++ 구조의 주요 차이점은 구조 내부의 모든 것이 기본적으로 공개적인 반면, 클래스 내부의 모든 것은 기본적으로 비공개라는 것이다.(즉, 외부에서는 어떤 것도 직접 접근할 수 없음)
위의 답변 외에도 C++ 구조는 상속을 지원하므로 vtable에 대한 포인터를 포함할 수 있다는 점을 기억하십시오.이것은 이러한 구조물을 여러 공정에 걸쳐 직렬화하고 탈직렬화할 때 큰 차이를 만들 수 있다.템플릿도 지원된다.
C : c에 있는 구조 내부의 기능을 정의할 수 없다.
C++ : 구조 내부의 기능을 c++로 정의할 수 있다.
참조URL: https://stackoverflow.com/questions/2242696/c-structure-and-c-structure
'programing' 카테고리의 다른 글
C의 엄격한 별칭 위반, 주물 없음에도 불구하고? (0) | 2022.04.23 |
---|---|
유사한 기능 구성요소에 대한 기존 Vue 구조(Vuex 포함) (0) | 2022.04.23 |
vue-properties가 중첩된 경로에 템플릿을 렌더링하지 않음 (0) | 2022.04.22 |
Mac OS X에 Java 7을 설치했지만 터미널이 버전 6을 사용하고 있음 (0) | 2022.04.22 |
Vue.js에서 클릭 이벤트를 동적으로 삽입할 수 있는 방법이 있는가? (0) | 2022.04.22 |