4
헤더 파일을 포함하지 않고 다른 헤더에서 객체의 유형 별명을 사용하려고합니다. 코드의C++에서 사용하는 forward 선언
내 단순화 된 버전입니다 : 그것은 정의가 A.h
에 Vector
의 정의로 동일해야하고 그것은 향후 변경 될 수 있기 때문에
// A.h
#include <vector>
using Vector=std::vector<int>;
====================================================
//B.h
using Vector;//forward declaration but not working !(Vector has not beed declared)
int foo(Vector*);
====================================================
//B.cpp
#include "A.h"
void foo(Vector*){}
내가 B.h
다시 using Vector=std::vector<int>;
을 쓰고 싶지 않아 및 내 코드는 순환 종속성이므로 포함 할 수 없습니다.
C++ 11에서는 using
의 순방향 선언이 가능합니까?
'B.h '에'.h "를'#include"해야합니다. – juanchopanza
@juanchopanza 순환 의존성이 있습니다. 그래서 나는 그것을 할 수 없다. – Omid
한 마디로 말이다. 선언을 반복하는 대신 별도의 헤더로 인수를 빼고 A와 B를 모두 포함 시키십시오. –