Функция не является однозначной c как исправить
Перейти к содержимому

Функция не является однозначной c как исправить

  • автор:

Ошибка при объявлении глобальной переменной: «Переменная не является однозначной»

Author24 — интернет-сервис помощи студентам

Создал я значит глобальную переменную min. Но подчеркивает красной волнистой линией переменную min в main. Ошибку обосновывает «min не является однозначной».
Может кто-нибудь расшифровать?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Использование слова static при объявлении глобальной переменной
строка 7 → Необходимо ли слово static? строка 30 → Как это работает? П.5.16.Правил Запрещено.

Ошибка «переменная не является однозначной»
Товарищи всем привет! У меня меня тоже непонятка с фразой "не является однозначной". Как это.

Объявлении глобальной переменной extern int
при объявлении глобальной переменно extern int t, ошибки undefined reference to `t’. А если я.

Ошибка при объявлении переменной
Кто-нибудь может подсказать, в чем здесь проблема ? Есть запрос: DECLARE .

Ошибка при объявлении переменной
ADODB.Connection в коде формы, тупо с начала листа кода в General Declarations пишу следующее: .

Как исправить ошибку «cout не является однозначным»?

country::country(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn) :
name(new char[strlen(aname) + 1])
strcpy_s(name, strlen(aname) + 1, aname);
t_winter = at_winter;
t_spring = at_spring;
t_summer = at_summer;
t_autumn = at_autumn;
>;

istream& operator>>(istream& In, country& COUNTRY)
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;

country& country::operator=(const country& COUNTRY) if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
name = COUNTRY.name;
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
return *this;
>;

NewCountry::NewCountry() :
country()
polusharie = NULL;
>;

NewCountry::NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie) :
country(aname,at_winter, at_spring, at_summer, at_autumn)
polusharie = apolusharie;
>;

string NewCountry::sReturnpolusharie() if (polusharie == 1) return «северное»;
if (polusharie == 2) return «южное»;
if (polusharie == 3) return «по обе стороны экватора»;
return «. ОШИБКА:данные отсутствуют. «;
>;

istream& operator>>(istream& In, NewCountry& COUNTRY)
char TEMP[123];
In >> TEMP >> COUNTRY.t_winter >> COUNTRY.t_spring >> COUNTRY.t_summer >> COUNTRY.t_autumn >> COUNTRY.polusharie;
delete[] COUNTRY.name;
COUNTRY.name = new char[strlen(TEMP) + 1];
strcpy_s(COUNTRY.name, strlen(TEMP) + 1, TEMP);
return In;
>;

NewCountry& NewCountry::operator=(const NewCountry& COUNTRY) if (this == &COUNTRY) return *this;
delete[] name;
name = new char[strlen(COUNTRY.name) + 1];
strcpy_s(name, strlen(COUNTRY.name) + 1, COUNTRY.name);
t_winter = COUNTRY.t_winter;
t_spring = COUNTRY.t_spring;
t_summer = COUNTRY.t_summer;
t_autumn = COUNTRY.t_autumn;
polusharie = COUNTRY.polusharie;
return *this;
>;

  • Вопрос задан более трёх лет назад
  • 4111 просмотров

1 комментарий

Простой 1 комментарий

Помогите пожалуйста исправить ошибку в коде программы (C++). Был бы благодарен.

Двоичное дерево поиска
Задание. Построение и обработка двоичных деревьев поиска. Реализовать программу, выполняющую следующий набор операций с деревьями поиска:

поиск вершины с заданным значением ключа с выводом счетчика числа появлений данного ключа
добавление новой вершины в соответствии со значением ее ключа или увеличение счетчика числа появлений
построчный вывод дерева в наглядном виде с помощью обратно-симметричного обхода
вывод всех вершин в одну строку по порядку следования ключей с указанием для каждой вершины значения ее счетчика появлений
удаление вершины с заданным значением ключа

Выдает (в VS 2012) следующие ошибки:

Т. Е. он утв-ет что count не является однозначным и не определен

Лучший ответ

Причина: здесь, возможно, компилятором делается попытка интерпретировать «cout << count << . какая-то чушь" как стандартную шаблонную функцию std::count.

Ты сделал ТРИ ошибки, которые сделали ГОВНОМ этот исходный код:

1) Свалил пространство имен std в общую кучу, с легкой руки вычертив using namespace std;
2) НЕ указывал оператор :: перед обращением к глобальной переменной
3) НЕ удосужился отформатировать исходник, но очень круто выложил это в pastebin

Первые две ошибки стали фатальными.

Вывод: стайлгайд в руки и стараться подражать!

котМастер (2407) 11 лет назад
я не понимаю тебя, может исправишь и выложишь.

Valrand() Мыслитель (7783) В C++ в пространстве имен std есть функция count: http://www.cplusplus.com/reference/algorithm/count/ По моему предположению (судя по ошибкам, которые у тебя вылезают через одну с прототипом этой функции), студия пытается тебе сказать, что она не уверена в твоих действиях, хочешь ли ты переменную или функцию вызвать. Потому, лучше обращаться к глобальным переменным явно указывая оператор расширения области видимости, например так: ::counter++; Что считается хорошим тоном в программировании и оберегает от таких ошибок. Второй вариант, позволяющий избежать проблемы — импортировать только необходимые элементы пространства имен std, а не все целиком, например: using std::cout; usint std::cin; вместо using namespace std; Сейчас ты только учишься (программа по сути на С, принадлежность к С++ тут выдают только средства ввода-вывода, namespace и операторы new/delete), но когда освоишь C++ с ООП, постарайся свести к минимуму использование глобальных переменных.

Остальные ответы

count определен внутри записи TREE. Значит обращаться к нему нужно TREE.count

И, блин, форматируйте код. Глаза же сломать можно 🙁

upd: так там две переменных count o_0

Valrand()Мыслитель (7783) 11 лет назад
Там и глобальная есть int count в 13 строке)
кот Мастер (2407) . и что?
котМастер (2407) 11 лет назад
кое-что исправил, но все равно ошибку выдает, ту же

Исправить count на другую переменную, например countеr.
Исправить декрименты на —.
Разрулить инициализацию parent.
Приступить к отладке.

cin, cout, system не являются однозначными, как убрать ошибки?

Программа по вычислениям полностью устраивает, она перемножает 2 матрицы указанного размера с рандомными числами, она запускается и правильно считает, но показывает, что есть ошибки типа: cin, cout, system не являются однозначными, всего 17 ошибок, подчеркивает красным эти операторы, как это убрать?

#include #include #include using namespace std; int main() < setlocale(LC_ALL, "Russian"); int** P1, ** P2, ** P3, n, m; cout > n; cout > m; P1 = new int* [n]; for (int i = 0; i < n; i++) P1[i] = new int[m]; srand(time(0)); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) //рандом 1 матрицы P1[i][j] = rand() % 10; for (int i = 0; i < n; i++) < cout > cout > k; P2 = new int* [k]; for (int i = 0; i < m; i++) P2[i] = new int[k]; for (int i = 0; i < m; i++) for (int j = 0; j < k; j++) //рандом 2 матрицы P2[i][j] = rand() % 10; for (int i = 0; i < m; i++) < cout > cout > cout cout

Отслеживать

222k 15 15 золотых знаков 120 120 серебряных знаков 234 234 бронзовых знака

задан 7 дек 2019 в 11:08

17 1 1 золотой знак 1 1 серебряный знак 3 3 бронзовых знака

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *