C++ 라이브러리 규칙
C + + 라이브러리는 표준 C 라이브러리와 동일한 규칙이 훨씬 따르는 또한 몇 가지 더 여기에 설명 되어 있습니다.
구현은 특정 위도 형식 및 C++ 라이브러리의 함수 선언 하는 방법에 있습니다.
이름에 표준 C 라이브러리 함수는 extern # "C++" 또는 extern "C" 링크가 있을 수 있습니다.라이브러리 엔터티 인라인 선언 대신 적절 한 표준 C 헤더를 포함 합니다.
라이브러리 클래스에 멤버 함수 이름을 통해이 문서에 나열 된 추가 함수 시그니처가 있을 수 있습니다.여기에 설명 된 함수 호출이 예상 대로 작동 하지만 안정적으로 라이브러리 멤버 함수의 주소를 가져올 수 없습니다 있는지 될 수 있습니다.(형식을 예상 수 있습니다.)
라이브러리 클래스는 기본 클래스 (비가상) 문서화 되지 않은 있을 수 있습니다.설명 다른 클래스에서 파생 된 클래스에서 다른 문서화 되지 않은 클래스는 해당 클래스에서 실제로 파생 될 수 있습니다.
몇 가지 정수 형식에 대 한 동의어로 정의 된 형식 같은 몇 가지 다른 정수 형식 중 하나를 수 있습니다.
비트 마스크 형식은 정수 형식 또는 열거형으로 구현할 수 있습니다.두 경우 모두 비트 연산을 수행할 수 있습니다 (같은 AND 및 OR) 같은 비트 마스크 형식의 값을 합니다.요소를 A 및 B 0이 아닌 값은 비트 마스크 유형입니다과 같은 A & B0이입니다.
이러한 가능성의 정의 명확 하 게 제한 되지 않는 라이브러리 함수의 예외 사양 없이 임의의 예외를 throw 할 수 있습니다.
한편, 몇 가지 제한 사항이 있습니다.
표준 C 라이브러리 매크로 없음 마스크를 사용합니다.시그니처가 예약 된 특정 함수, 함수 자체의 이름이 아닌만 합니다.
라이브러리 함수 이름이 클래스 외부에서 문서화 되지 않은, 다른 함수 시그니처가 없습니다.주소를 안정적으로 수행할 수 있습니다.
기본 클래스 및 멤버 함수가 가상으로 설명 되는 동안 저수준 가상 비가상으로 설명 하는 저수준 nonvirtual.
그렇지 않으면이 문서를 명시적으로 제시 하지 않는 한 해당 C++에 정의 된 두 가지 종류는 항상 서로 다릅니다.
기본 버전을 바꿀 수 있는 기능을 포함 하는 라이브러리에서 제공 하는 함수가 throw 할 최대 해당 하는 예외는 예외 사양에 나열 된.예외를 throw 하는 라이브러리에서 제공 하는 소멸자가 없습니다.표준 C 라이브러리에서 함수는 예외와 같이 전파 될 수 있습니다 qsort 비교 함수를 호출 하면 예외가 throw 되지만 그렇지 않은 경우 예외를 throw 하지 않습니다.