c++에서 type:name 과 class 의 차이 점 소개
여기 서 class 키 워드 는 T 가 하나의 유형 임 을 나타 내 고 나중에 class 가 이 두 곳 에서 사용 하 는 것 이 헷 갈 리 지 않도록 type:name 이라는 키 워드 를 도입 했다.그것 의 역할 은 class 와 마찬가지 로 뒤의 기 호 를 하나의 유형 으로 표시 합 니 다.그러면 템 플 릿 을 정의 할 때 아래 의 방식 을 사용 할 수 있 습 니 다.template
템 플 릿 정의 문법 에서 키워드 class 는 type:name 의 역할 과 똑 같 습 니 다.
type:name 은 템 플 릿 정의 에서 만 작 동 합 니까?사실은 그렇지 않 습 니 다.type:name 의 다른 역할 은 내장 의존 형식(nested depended name)을 사용 하 는 것 입 니 다.다음 과 같 습 니 다.
class MyArray
{
public:
typedef int LengthType;
.....
}
template<class T>
void MyMethod( T myarr )
{
typedef typename T::LengthType LengthType;
LengthType length = myarr.GetLength;
}
이때 type name 의 역할 은 c++컴 파일 러 에 게 알려 주 는 것 입 니 다.type name 뒤의 문자열 은 구성원 함수 나 구성원 변수 가 아 닌 유형 이름 입 니 다.이 럴 때 앞 에 type name 이 없 으 면 컴 파일 러 는 T:LengthType 이 하나의 유형 인지 구성원 이름(정적 데이터 구성원 또는 정적 함수)인지 알 방법 이 없습니다.그래서 컴 파일 은 통과 할 수 없습니다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바스크립트 클래스JavaScriptda class ob'yekt yaratish uchun mo'ljallangan. Bunda class ob'yekt malumotlari va funksiyalarini o'z ichiga ol...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.