내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
버그 - 여러 정의
문제는 C++ 코드에서 "'데이터'에 대한 참조가 모호합니다."라는 오류가 발생했다는 것입니다. 이 오류는 일반적으로 여러 정의가 있는 변수를 참조하려고 할 때 발생합니다.
코드에서 전역 변수 data를 정의하는 동시에 C++ 표준 라이브러리에는 data라는 함수 템플릿도 있습니다. fib 함수에서 데이터를 사용할 때 컴파일러는 전역 변수 data를 참조할지 또는 std::data를 참조할지 여부를 결정할 수 없으므로 모호한 오류가 발생합니다.
이 문제를 해결하려면 전역 변수 데이터의 이름을 변경하거나 호출 시 전역 변수를 참조하도록 명시적으로 지정하면 됩니다.
해결 방법 1: 전역 변수 이름 변경
영어: 영어: cpp(씨피)(씨피)
#포함하다<iostream>
네임스페이스 std 사용
정수 모드=1e9+7;
int fibData[10000]; //이름 변경
int fib(int n){
n==1||n==2인 경우 fibData[n]=1; fibData[n]을 반환합니다.
fibData[n]!=0이면 fibData[n]을 반환합니다.
fib데이터[n] = fib데이터[n-1] + fib데이터[n-2];
fibData[n]을 반환합니다.
}
int 메인() {
정수 t;
>>t;를 표시합니다.
int i=0;i에 대하여
정수 n;
영어: cin>>n;
cout<
}
0을 반환합니다.
}
해결 방법 2: 호출 시 전역 변수를 참조하도록 명시적으로 지정
영어: 영어: cpp(씨피)(씨피)
#포함하다<iostream>
네임스페이스 std 사용
정수 모드=1e9+7;
int 데이터[10000];
int fib(int n){
if(n==1||n==2){::data[n]=1;return ::data[n];} // 참조하려는 항목을 명확하게 지정하려면 앞에 '::'를 추가합니다. 전역 변수
if(::data[n]!=0) ::data[n]을 반환합니다.
::데이터[n] =::데이터[n-1] +::데이터[n-2];
::data[n]을 반환합니다.
}
int 메인() {
정수 t;
>>t;를 표시합니다.
int i=0;i에 대하여
정수 n;
영어: cin>>n;
cout<
}
0을 반환합니다.
}