|
Ambiguity 에러는 흔히 다음과 같이 namespace 의 혼란에서 발생 합니다.
가령
namespace n1
{
int a;
}
namespace n2
{
int a;
}
이렇게 namespace 가 n1과 n2 가 있고 같은 a라는 이름의 변수가 있다고 하면
using namespace n1;
using namespace n2;
이렇게 namespace사용선언이 중첩 되어질경우
a = 20;
이렇게 사용하면 결국 a라는 변수가 n1 에 있는것인지 n2 에 있는것인지를 컴파일러가 구분을 못하기 때문에
나오는 에러 입니다.
이런경우 using namespace 부분을 중첩이 않되도록 하든지 아니면
호출시 n1::a=20; 또는 n2::a=30; 이런식으로 해당 namespace를 열거해주시면 됩니다.
아마도 ftime은 c++ 의 기본 함수로 std namespace에 존재합니다.
ftime(timeb *) 라는 함수를 직접 다시 작성 하셨는데 해당 해당 함수가 특정한 namespace에 들어 있지 않거나
아니면 두개의 namespace가 using 선언에 의하여 중첩 되어서 나타나는 현상인듯 합니다.
namespace를 정리하셔서 처리하시면 될듯 하군요..
수고하세요.
오전&오후 님이 쓰신 글 :
: 간단하게 빌더에서 폼한개 생성하고
: 업체에서 받은 헤더파일과 소스파일을 포함시키고 컴파일해보면
: 밑에처럼 에러가 나오는데 어떻게 처리해야되나요?
: [C++ Error] stdsoap2.cpp(8302): E2015 Ambiguity between 'ftime(timeb *)' and 'std::ftime'
: 에러내용을 보면 ftime(timeb *)이 std::ftime하고 모호성 에러가 나는거 같은데
: 어떻게 처리해야되나요?
|