programing

C구조와 C++구조

prostudy 2022. 4. 23. 10:23
반응형

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++ 구조에는 몇 가지 차이가 있다.

  1. C에서는 구조 유형 값을 생성하기 위해 구조 키워드가 필요하지만 C++에서는 필요하지 않다고 정의한다.

  2. C에서는 구조물의 내부에 함수가 없고 C++에서는 구조의 데이터 멤버에 직접 접근할 수 있는 함수를 정의할 수 있다(함수는 C++에서 메서드로 이름임).

  3. C++에서는 접근 수식어(예: 사설 및 공용)를 찾을 수 있는 반면 C에서는 구조 내부에 접근 수식어 개념이 없다.기본적으로 모든 것이 공개적이다.

  4. C의 구조는 정적 부재를 가질 수 없고 C++ 구조에서는 정적 부재를 가질 수 있다.

  5. 빈 구조물의 크기는 C에서는 제약조건 위반이지만 C++에서는 항상 1이다.

  6. C++에서는 구조체에 대한 포인터와 참조를 둘 다 가질 수 있지만, 구조체에 대한 포인터만 허용된다.(참고는 C언어의 특징이 아니다)

C 구조체는 복합 데이터 구조의 정의와 더 유사하다.

C++ 구조체는 클래스로 생각할 수 있지만 모든 회원 변수의 범위는 공개로 디폴트된다.

C++에서는 구조물이 클래스처럼 동작하여 방법, 생성자, 소멸자 등을 허용한다.

클래스와 C++ 구조의 주요 차이점은 구조 내부의 모든 것이 기본적으로 공개적인 반면, 클래스 내부의 모든 것은 기본적으로 비공개라는 것이다.(즉, 외부에서는 어떤 것도 직접 접근할 수 없음)

위의 답변 외에도 C++ 구조는 상속을 지원하므로 vtable에 대한 포인터를 포함할 수 있다는 점을 기억하십시오.이것은 이러한 구조물을 여러 공정에 걸쳐 직렬화하고 탈직렬화할 때 큰 차이를 만들 수 있다.템플릿도 지원된다.

C : c에 있는 구조 내부의 기능을 정의할 수 없다.

C++ : 구조 내부의 기능을 c++로 정의할 수 있다.

참조URL: https://stackoverflow.com/questions/2242696/c-structure-and-c-structure

반응형