2017-11-29 20 views
2

C++의 빌드 유형은 long long int, unsigend int입니다. 유형은 const, volatilemutable과 같은 한정자와 결합 할 수 있습니다.다중 단어 데이터 정의

long long int이 데이터 유형입니까? 왜 이름이 longLongInt으로 지정되지 않았습니까? 다중 단어 데이터 유형은 어떻게 작동합니까? 내 자신을 정의 할 수 있습니까?

사용자 정의 데이터 유형과 관련하여 사용자 정의 된 한정자를 정의 할 수 있습니까?

예를 들어 3D의 선형 대수 벡터를 생각해보십시오. 벡터의 x, y, z 성분을 포함하는 클래스 LinAlVector를 정의 할 수 있습니다. 지금,이 벡터는 단위 벡터 (길이가 1과 동일하다)는 것을 보장 할 필요가있는 경우 나

isUnit LinAlVector vec(x,y,z); 

을 쓸 수있는 경우 isUnit이 문제를 초래하는 수식이다

, 궁금 LinAlVector (예 : 비 단위 벡터가 정의 된 경우 컴파일러 오류).

나는 OO 직선 방식으로 UnitLinAlVectorLinAlVector에서 파생시키는 것으로 알고 있습니다. 긴

+1

실제로는 "3 단어"데이터 유형입니다. 'long long int i;' – StoryTeller

+0

이들은 언어로 특수화되어 있습니다. –

+0

이러한 다중 단어 유형은 언어 자체의 일부입니다. 다중 단어 일반 식별자를 사용할 수 없습니다. –

답변

5

long long int은 왜 데이터 유형입니까? 왜 이름이 longLongInt으로 지정되지 않았습니까?

표준위원회에서 결정한 이름이기 때문에. 이 이름은 아마도 C99의 해당 데이터 유형과 동일한 이름이기 때문에 선택되었을 것입니다.

이름이 longLongInt 인 경우 해당 언어에 새 키워드를 추가해야합니다. 이는 새로운 키워드를 도입 할 때 이전 버전과 호환되지 않기 때문에 피해야 할 사항입니다. longint은 이미 키워드 였으므로 long long int은 어떤 키워드도 소개하지 않았습니다.

내 자신의 정의 할 수 있습니까?

아니요, 언어 사용자는 아니요 유형 별칭과 새 클래스 유형을 만들 수 있지만 새로운 기본 유형은 만들 수 없습니다.

컴파일러 구현 자로서 확실히 할 수 있습니다.

은 가능한 언어의 사용자로 정의 규정

하지 않음을 정의하는 것입니다.

0

은 내가 그것을 사용자 정의 수정을 정의하는 것은 불가능 알고 있듯이 유형 수정이

http://en.cppreference.com/w/cpp/language/types를 참조하고, 유형이 아닙니다.

당신이 할 수있는 일은 bool을 반환하는 isUnit 멤버 함수를 만드는 것입니다.