1
template <class T=A>
struct B {
T a;
};
struct A {
B<A> foo(){
B<A> result;
return result;
}
};
템플릿을 사용하지 않아도되는데 어떻게해야합니까? (사용법을 보려면 기본 매개 변수를 기억하십시오). 문제는 두 클래스 모두 서로의 정의가 필요하다는 것입니다. 그러나 템플릿 솔루션이 보여주는 것처럼 "진짜"순환 종속성은 없습니다.정의가 필요할 때 원형 클래스 종속성 피하기
당신은 앞으로 선언이 경우 (A::foo
의 경우와 같이)는 값으로 반환하고 충분한 사실 이용할 수
잊지 마세요 DevStudio와 2005 년 나를 위해 잘 컴파일을 템플릿이 선언 될 때 사용되지 않을 때 인스턴스화됩니다. – Skizz
그래, 위의 해결 방법은 효과가있다. 템플릿을 제거하는 것은 아닙니다. – arithma