Я получаю ошибку компиляции, говоря, что «left» и «right» неоднозначны.Ошибка компиляции: левая неоднозначная, правая неоднозначная
Я объявляю левый, право в неправильном месте?
- Декларирование внутри основной не помогает
- Moving определение функции выше основной не поможет
Как мне это исправить?
Минимальный тест:
#include <iostream>
using namespace std;
int left = 0, right = 0;
int main()
{
cout << left;
cout << right;
}
дает:
prog.cpp: In function ‘int main()’:
prog.cpp:6:13: error: reference to ‘left’ is ambiguous
prog.cpp:3:5: error: candidates are: int left
In file included from /usr/include/c++/4.7/ios:43:0,
from /usr/include/c++/4.7/ostream:40,
from /usr/include/c++/4.7/iostream:40,
from prog.cpp:1:
/usr/include/c++/4.7/bits/ios_base.h:918:3: error:
std::ios_base& std::left(std::ios_base&)
prog.cpp:7:13: error: reference to ‘right’ is ambiguous
prog.cpp:3:15: error: candidates are: int right
In file included from /usr/include/c++/4.7/ios:43:0,
from /usr/include/c++/4.7/ostream:40,
from /usr/include/c++/4.7/iostream:40,
from prog.cpp:1:
/usr/include/c++/4.7/bits/ios_base.h:926:3: error:
std::ios_base& std::right(std::ios_base&)
Совет на будущее - постройте [минимальный тестовый пример] (https://ideone.com/c2DqtQ) и вставьте код в вопрос, а не только ссылку на него. – Dukeling
Я просто не могу понять форматирование кода на этом сайте! – user1776433
Теперь вы знаете, почему вы не делаете 'using namespace std;'! –