C++에 삽입 네임 스페이스를 참조 할 수 없습니다왜 내가 하나 개의 프로젝트에서 세 개의 파일을 가지고
하나입니다
namespace sql
{
namespace detail
{
void getColumnValue();
}
}
다른 하나는
namespace detail{
.........
}
세번째는
입니다#include "first_file"
namespace sql
{
template<typename TheStruct>
class RowStruct {
public:
void shouldCombine()
{
sql::detail::getColumnValue();
}
}
세 파일 동일한 프로젝트와 동일한 외부 네임 스페이스에 모두 있어야합니다. 하지만 그 다음에 세 번째 파일에 대해 ": sql :: detail '이 선언되지 않았습니다. "오류가 발생합니다.
"sql"의 "detail"을 참조 할 수없는 이유는 무엇입니까? 세 번째 파일에서 "sql :: detail ::"대신 "detail ::"을 사용하면 두 번째 파일에 선언 된 세부 정보가 표시됩니다. 원하는 내용이 아닙니다.
'detail' 네임 스페이스가 실제로'sql' 안에 선언되어 있습니까? 그건 당신이 보여주는 것이 아닙니다. – Useless
필요한'#include '를 가지고 있습니까? 왜냐하면 그렇지 않다면 (RowStruct' 클래스에 대해)'missing '이외의 다른 것을 보지 못하기 때문입니다. –
헤더 파일 중 첫 번째 파일입니까? 그것을 포함합니까? –