2016-11-06 9 views
-1

최근 C++에서 클래스를 미리 정의 할 수있는 스마트 바로 가기를 발견했습니다. 일부 복잡한 구조를 만드는 일반적으로 내가 작성합니다C++ 클래스에서 정의되지 않은 템플릿 사용

class A; 
class B{ 
    A *a; 
}; 
... 
class A{ 

}; 

지금, 덕분에 바로 가기, 나는 쓰기 :

class B{ 
    class A *a; 
}; 
class A{ 

}; 

내 질문 -이 양식에 대한 짧은 정의에 해당 할 수있는 방법 :

template<typename T> class A; 
class B{ 
    typename typedef A<class T> a; 
}; 

?

답변

1

간단한 대답은 할 수 없다는 것입니다. 일반 클래스에 대해 정교한 형식 지정자를 사용하면 암시 적으로이를 선언하여 이름을 둘러싼 네임 스페이스에 도입합니다.

템플릿이 같은 방식으로 동작하도록 정의되지 않았습니다.

+0

글쎄, 나는 당신을 모른다는 것을 모르는 사람을 기다릴 것이다. –

+0

@CheshireCat, 당신은 C++ 표준을 자유롭게 읽을 수있다. 대답은 변하지 않을 것입니다. – StoryTeller