Ошибка активно e0266 cout не является однозначным

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

#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int** P1, ** P2, ** P3, n, m;
cout << "Введите кол-во строк матрицы: ";
cin >> n;
cout << "Введите кол-во столбцов матрицы: ";
cin >> 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 << endl;                  //вывод 1 матрицы
    for (int j = 0; j < m; j++)
    {
        cout << setw(3) << P1[i][j] << "t";
    }
}
cout << endl;
int k;
cout << "Введите кол-во столбцов 2 матрицы: ";
cin >> 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 << endl;                  //вывод 2 матрицы
    for (int j = 0; j < k; j++)
    {
        cout << setw(3) << P2[i][j] << "t";
    }
}
cout << endl;
P3 = new int* [n];
for (int i = 0; i < n; i++)
    P3[i] = new int[k];
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < k; j++)  //умножение матриц
    {
        P3[i][j] = 0;
        for (int z = 0; z < m; z++)
            P3[i][j] = P3[i][j] + P1[i][z] * P2[z][j];
    }
}
cout << endl << "Результат умножения:" << endl;
for (int i = 0; i < n; i++)                     //вывод результата 
 умножения
{
    cout << endl;
    for (int j = 0; j < k; j++)
        cout << setw(3) << P3[i][j] << "t";
}
cout << endl;
for (int i = 0; i < n; i++)
    delete[] P1[i];
delete[] P1;
for (int i = 0; i < m; i++)
    delete[] P2[i];
delete[] P2;
for (int i = 0; i < n; i++)
    delete[] P3 [i];
delete[] P3;
system("pause");
return 0;
}

0 / 0 / 0

Регистрация: 07.01.2023

Сообщений: 6

1

23.03.2023, 13:30. Показов 1679. Ответов 14


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

Написала код, всё работает прекрасно, но через какое-то время появляется 90+ ошибок «cout не является однозначным» и код не компилируется (using namespace std есть, да и код работал), раньше эту проблему удавалось решить переписав строку «using namespace std» или просто убрав «;» и вернув её обратно, но сейчас это уже не помогает. Поискала решение, некоторые перезапускают VS, это помогло, но ошибка появляется очень часто и постоянно перезапускать программу неудобно. Подскажите, может есть ещё какие-то способы это решить.



0



Лежебока

296 / 215 / 92

Регистрация: 12.05.2021

Сообщений: 1,263

23.03.2023, 13:31

2

moolingtoon, предоставьте пример и проблемы, а там будет видно,наверно



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 13:33

3

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

Подскажите, может есть ещё какие-то способы это решить.

Что за программного монстра ты рожаешь? Для этого использование MSVC необходимо?



0



moolingtoon

0 / 0 / 0

Регистрация: 07.01.2023

Сообщений: 6

23.03.2023, 13:56

 [ТС]

4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <Windows.h>
#include <string>
#include <fstream> 
#include <stdlib.h>
#include <conio.h>
using namespace std;
 
HANDLE color;
void white ();
void red();
void green();
 
void white()
{SetConsoleTextAttribute(color, 7);}
void red()
{SetConsoleTextAttribute(color, 12);}
void green()
{SetConsoleTextAttribute(color, 10);}
 
void MainMenu();
 
void MainMenu()
{
    system("cls");
    green(); cout << "tГлавное меню" << endl;
    cout << "[1] ";
    white(); cout << "Войти в личный кабинет" << endl;
    green(); cout << "[2] ";
    white(); cout << "Регистрация" << endl;
    green(); cout << "[3] ";
    white(); cout << "Войти от имени администратора" << endl;
    red(); cout << "[Esc] ";
    white(); cout<<"Выход" << endl << endl;
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    color = GetStdHandle(STD_OUTPUT_HANDLE);
    MainMenu();
}

вот небольшой кусочек, ошибка выделяет все строчки там где есть cout



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 14:04

5

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

вот небольшой кусочек, ошибка выделяет все строчки там где есть cout

Проблема явно в самой IDE и/или в мокрософтовском компиляторе.
У меня компилится прям в консоли и работает.

cout не является однозначным



0



0 / 0 / 0

Регистрация: 07.01.2023

Сообщений: 6

23.03.2023, 14:06

 [ТС]

6

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



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 14:08

7

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

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

Я просил:

Цитата
Сообщение от Verevkin
Посмотреть сообщение

Для этого использование MSVC необходимо?



0



0 / 0 / 0

Регистрация: 07.01.2023

Сообщений: 6

23.03.2023, 14:12

 [ТС]

8

курсовая по с++, начала работу естественно в VS, не думаю что переходить на новую среду будет удобно



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 14:14

9

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

курсовая по с++, начала работу естественно в VS

Почему естественно?

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

не думаю что переходить на новую среду будет удобно

Почему?



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 14:19

10

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

cout не является однозначным



0



0 / 0 / 0

Регистрация: 07.01.2023

Сообщений: 6

23.03.2023, 14:26

 [ТС]

11

изначально изучение языка начали в VS и постоянно работали в нём



0



Нарушитель

8595 / 4600 / 1061

Регистрация: 12.03.2015

Сообщений: 21,633

23.03.2023, 14:32

12

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

изначально изучение языка начали в VS и постоянно работали в нём

А, ну это другое дело!
Тогда страдай.
——
Я-то, честно говоря, думал, что цель —

сдать курсач

научиться кодить, а тут вон оно чо, Михалыч!



0



фрилансер

4807 / 4402 / 939

Регистрация: 11.10.2019

Сообщений: 11,629

23.03.2023, 14:40

13

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

using namespace std есть

вот и плохо. Убирай его и везде к его идентификаторам приписывай std::. Почти уверен, что проблема в этом

Добавлено через 1 минуту
что-то мне ещё подсказывает, что это вообще не компилятор ругается, а intellisence подчёркивает. В последнем случае можно просто не обращать внимания

Добавлено через 1 минуту

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

но через какое-то время появляется 90+ ошибок

точно



0



Лежебока

296 / 215 / 92

Регистрация: 12.05.2021

Сообщений: 1,263

23.03.2023, 15:00

14

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

курсовая по с++, начала работу естественно в VS, не думаю что переходить на новую среду будет удобно

Если там нет ничего супер-пупер навороченного, то попробуй другую среду(dev-c++, codeblocks),на крайняк можно онлайн компилятор
Dev и Codebloks довольно удобны, быстро освоишься



0



Вездепух

Эксперт CЭксперт С++

10948 / 5935 / 1624

Регистрация: 18.10.2014

Сообщений: 14,900

23.03.2023, 17:32

15

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

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

Так не бывает и вы что-то выдумываете.

Разумеется, если ошибка есть, то никакие «переходы на другую IDE» тут не помогут.

Цитата
Сообщение от moolingtoon
Посмотреть сообщение

ошибка выделяет все строчки там где есть cout

«Выделяет»? Что значит «выделяет»?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

23.03.2023, 17:32

Помогаю со студенческими работами здесь

Ошибка компиляции: «ref» не является однозначным
Двадцать ошибок и все как одна — &quot;ref&quot; не является однозначным. Помогите, мне эту красоту ещё…

«count» не является однозначным, проблема в коде
Всем привет, возникла проблема при написании кода , помогите пожалуйста решить , спасибо.
#include…

Ошибка компиляции «Е0266, х не является однозначным»
Здравствуйте!

Есть класс Tank, являющийся наследником Rectangle, который, в свою очередь,…

Странная ошибка volatile int count — count не является однозначным. Ещё про CloseHandle — для чего это?
Странная ошибка volatile int count — count не является однозначным. Ещё про CloseHandle — для чего…

Найти причины ошибки: cout не является членом std
Пример из учебника, пишет что cin, cout — необъявленные идентификаторы, пыталась кажый прописать…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

15

А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))

#include
#include
using namespace std;

class country
{

public:

country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);
~country();

char* Returnname() { return name; };
double ReturnT_Winter() { return t_winter; };
double ReturnT_Spring() { return t_spring; };
double ReturnT_Summer() { return t_summer; };
double ReturnT_Autumn() { return t_autumn; };

friend ostream& operator<<(ostream& OUT, const country& COUNTRY);
friend istream& operator>>(istream& IN, country& COUNTRY);

country& operator=(const country& COUNTRY);

protected:

char* name;
double t_winter, t_spring, t_summer, t_autumn;

};

class NewCountry : public country {
public:

NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);
~NewCountry();

unsigned short int gpolusharie() { return polusharie; };
string sReturnpolusharie();

friend ostream& operator<<(ostream& OUT, const NewCountry& COUNTRY);
friend istream& operator>>(istream& IN, NewCountry& COUNTRY);

NewCountry& operator=(const NewCountry& COUNTRY);

private:
unsigned short int polusharie;
};

country::country()
{
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
};

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;
};

country::country(const country& COUNTRY) :
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;
};

country::~country()
{
delete[] name;
};

ostream& operator<<(ostream& Out, const country& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;

return Out;
};

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;
};

NewCountry::NewCountry(const NewCountry& COUNTRY) :
country(COUNTRY)
{
polusharie = COUNTRY.polusharie;
};

NewCountry::~NewCountry()
{
delete[]name;
};

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

ostream& operator<<(ostream& Out, const NewCountry& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;
Out << «nРАСПОЛОЖЕНИЕ ОТНОСИТЕЛЬНО ЭКВАТОРА: «;
if (COUNTRY.polusharie == 1) Out << «СЕВЕРНОЕ»;
if (COUNTRY.polusharie == 2) Out << «ЮЖНОЕ»;
if (COUNTRY.polusharie == 3) Out << «ПО ОБЕ СТОРОНЫ ЭКВАТОРА»;
return Out;
};

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;
};

void main() {
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout << «КОЛИЧЕСТВО СТРАН: «;
cin >> N;
lol = new NewCountry[N];
cout << «Введите данныеnНазвание страны , температура зимой,весной и летом, в каком полушарии находится (1 — северное, 2 — южное, 3 — по обе стороны экватора ):nn»;
for ( int i = 0; i < N; i++) cin >> lol[i];
for ( int i = 0; i < N; i++)
{
if (winter < lol[i].ReturnT_Winter())
winter = lol[i].ReturnT_Winter();
if (summer > lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
}
};
cout << «nПроверка оператора =n»;
lol[0] = lol[1];
cout << lol[0] << endl;
cout << lol[1] << endl;
cout << «nПроверка конструктора копированияn»;
NewCountry Copy(lol[2]);
cout << Copy << endl;
cout << lol[2] << endl;
delete[] lol;
system(«pause»);
};

А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))

#include
#include
using namespace std;

class country
{

public:

country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);
~country();

char* Returnname() { return name; };
double ReturnT_Winter() { return t_winter; };
double ReturnT_Spring() { return t_spring; };
double ReturnT_Summer() { return t_summer; };
double ReturnT_Autumn() { return t_autumn; };

friend ostream& operator<<(ostream& OUT, const country& COUNTRY);
friend istream& operator>>(istream& IN, country& COUNTRY);

country& operator=(const country& COUNTRY);

protected:

char* name;
double t_winter, t_spring, t_summer, t_autumn;

};

class NewCountry : public country {
public:

NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);
~NewCountry();

unsigned short int gpolusharie() { return polusharie; };
string sReturnpolusharie();

friend ostream& operator<<(ostream& OUT, const NewCountry& COUNTRY);
friend istream& operator>>(istream& IN, NewCountry& COUNTRY);

NewCountry& operator=(const NewCountry& COUNTRY);

private:
unsigned short int polusharie;
};

country::country()
{
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
};

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;
};

country::country(const country& COUNTRY) :
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;
};

country::~country()
{
delete[] name;
};

ostream& operator<<(ostream& Out, const country& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;

return Out;
};

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;
};

NewCountry::NewCountry(const NewCountry& COUNTRY) :
country(COUNTRY)
{
polusharie = COUNTRY.polusharie;
};

NewCountry::~NewCountry()
{
delete[]name;
};

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

ostream& operator<<(ostream& Out, const NewCountry& COUNTRY)
{
Out << «nСТРАНА: » << COUNTRY.name << «nТЕМПЕРАТУРА ЗИМОЙ» << COUNTRY.t_winter << «nТЕМПЕРАТУРА ВЕСНОЙ» << COUNTRY.t_spring << «nТЕМПЕРАТУРА ЛЕТОМ» << COUNTRY.t_summer << «nТЕМПЕРАТУРА ОСЕНЬЮ » << COUNTRY.t_autumn;
Out << «nРАСПОЛОЖЕНИЕ ОТНОСИТЕЛЬНО ЭКВАТОРА: «;
if (COUNTRY.polusharie == 1) Out << «СЕВЕРНОЕ»;
if (COUNTRY.polusharie == 2) Out << «ЮЖНОЕ»;
if (COUNTRY.polusharie == 3) Out << «ПО ОБЕ СТОРОНЫ ЭКВАТОРА»;
return Out;
};

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;
};

void main() {
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout << «КОЛИЧЕСТВО СТРАН: «;
cin >> N;
lol = new NewCountry[N];
cout << «Введите данныеnНазвание страны , температура зимой,весной и летом, в каком полушарии находится (1 — северное, 2 — южное, 3 — по обе стороны экватора ):nn»;
for ( int i = 0; i < N; i++) cin >> lol[i];
for ( int i = 0; i < N; i++)
{
if (winter < lol[i].ReturnT_Winter())
winter = lol[i].ReturnT_Winter();
if (summer > lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
}
};
cout << «nПроверка оператора =n»;
lol[0] = lol[1];
cout << lol[0] << endl;
cout << lol[1] << endl;
cout << «nПроверка конструктора копированияn»;
NewCountry Copy(lol[2]);
cout << Copy << endl;
cout << lol[2] << endl;
delete[] lol;
system(«pause»);
};

Содержание

  1. Как исправить ошибку «cout не является однозначным»?
  2. Как исправить ошибку «cout не является однозначным»?
  3. Неоднозначность переменной count
  4. Решение
  5. Cout не является однозначным ошибка c
  6. Решение
  7. Решение
  8. Идентификатор не объявлен The identifier is undeclared
  9. 1. Статическая инициализация
  10. Логические операторы
  11. Короткий цикл вычислений
  12. Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure
  13. А где же побитовое исключающее ИЛИ (XOR)?

А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
В чем проблема?(
Подскажите пожаалулйстааа))))

#include
#include
using namespace std;

country();
country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
country(const country& CONTRY);

char* name;
double t_winter, t_spring, t_summer, t_autumn;

class NewCountry : public country <
public:

NewCountry();
NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
NewCountry(const NewCountry& COUNTRY);

unsigned short int gpolusharie() < return polusharie; >;
string sReturnpolusharie();

private:
unsigned short int polusharie;
>;

country::country()
<
name = NULL;
t_winter = NULL;
t_spring = NULL;
t_summer = NULL;
t_autumn = NULL;
>;

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;
>;

ostream& 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 «. ОШИБКА:данные отсутствуют. «;
>;

ostream& 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;
>;

void main() <
setlocale(LC_ALL, «Russian»);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int N;
double winter = lol[0].ReturnT_Winter;
double summer = lol[0].ReturnT_Summer;
NewCountry* lol;
cout > N;
lol = new NewCountry[N];
cout > lol[i];
for ( int i = 0; i lol[i].ReturnT_Summer ())
summer = lol[i].ReturnT_Summer();
>
>;
cout Вопрос задан более двух лет назад

  • 2539 просмотров
  • Источник

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

    А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
    В чем проблема?(
    Подскажите пожаалулйстааа))))

    #include
    #include
    using namespace std;

    country();
    country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
    country(const country& CONTRY);

    char* name;
    double t_winter, t_spring, t_summer, t_autumn;

    class NewCountry : public country <
    public:

    NewCountry();
    NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
    NewCountry(const NewCountry& COUNTRY);

    unsigned short int gpolusharie() < return polusharie; >;
    string sReturnpolusharie();

    private:
    unsigned short int polusharie;
    >;

    country::country()
    <
    name = NULL;
    t_winter = NULL;
    t_spring = NULL;
    t_summer = NULL;
    t_autumn = NULL;
    >;

    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;
    >;

    ostream& 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 «. ОШИБКА:данные отсутствуют. «;
    >;

    ostream& 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;
    >;

    void main() <
    setlocale(LC_ALL, «Russian»);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N;
    double winter = lol[0].ReturnT_Winter;
    double summer = lol[0].ReturnT_Summer;
    NewCountry* lol;
    cout > N;
    lol = new NewCountry[N];
    cout > lol[i];
    for ( int i = 0; i lol[i].ReturnT_Summer ())
    summer = lol[i].ReturnT_Summer();
    >
    >;
    cout Вопрос задан более двух лет назад

  • 2539 просмотров
  • Источник

    Неоднозначность переменной count

    Доброго времени суток. Использую VS2013. Подскажите пожалуйста, по какой причине глобальная переменная, в приведенном ниже коде, не является однозначной и во что её переименовать. Заранее спасибо!
    PS/ Я совсем начинающий ученик, не судите строго)

    Не компилируется код из-за переменной count
    Подскажите count же в C++ не ключевое слово и ее можно использовать в виде переменной. Программный.

    Нюансы синтаксиса: statement for — как понимать запись for (count=0, mask=1; count != 16; count++, mask 8

    kailinka,
    Рекомендую обращать внимание на компилятор и ИДЕ,если ему(ей) что-то не нравится лучше самостоятельно выяснить в чем проблема и, по возможности,исправить.

    Вот у вас в функции func2/0 есть локальная переменная.Её обязательно называть count?
    Какую переменную вы хотите,чтобы использовал компилятор?

    Добавлено через 5 минут
    Заодно можете ознакомится с темой:
    Вопрос об области видимости переменной

    S_el, локальная переменная просто «перекроет» глобальную. Проблема в using’е. В студии в неявно подрубается (или только некоторые объявления из него, не знаю).

    kailinka, уберите using namespace std или назовите переменные count по другому.
    В STL есть сущность с именем count, с ней и происходит конфликт имен.
    using namespace std

    Решение

    Шилдт просто не мог предсказать как включаются заголовки в мелкомягком компиляторе. А так код вполне себе валидный.

    Добавлено через 39 секунд

    Спасибо! Получилось!

    Добавлено через 11 минут
    Получилось чтобы не выдавались ошибки, но программа при отладке пишет что то типа » cout не является внутренней или внешней командой, не является каким-то файлом», не успеваю прочитать более подробно т.к. не смотря на system(«Pausa>nul»); cmd оч быстро закрывается(.

    Добавлено через 12 минут
    Вопрос решила! Ругался как раз таки на system(«Pausa>nul»);, теперь буду искать решение проблемы с закрывающейся cmd. Всем большое спасибо за ответы!

    Источник

    Cout не является однозначным ошибка c

    Дополнительные сведения о: Ошибка компилятора C2065

    Решение

    прежде чем любые другие включают директивы.

    Решение

    прежде чем любые другие включают директивы.

    Я только начал разбираться с плюсами. И тут же воткнулся в какой-то непонятный для меня косяк.

    Вроде все верно. Но при компиляции ошибка:

    Я почитал у вас тут похожие темы. Пишут, что область имен надо объявить, она есть. Вроде вообще все как надо. Я использую VS 2017 для написания кода. Объясните, пожалуйста, что не так.

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

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

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

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

    Идентификатор не объявлен The identifier is undeclared

    Если идентификатор является переменной или именем функции, его необходимо объявить перед тем, как его можно будет использовать. If the identifier is a variable or a function name, you must declare it before it can be used. Перед использованием функции в объявлении функции также должны быть включены типы его параметров. A function declaration must also include the types of its parameters before the function can be used. Если переменная объявлена с помощью auto , компилятор должен иметь возможность определить тип из его инициализатора. If the variable is declared using auto, the compiler must be able to infer the type from its initializer.

    Если идентификатор является членом класса или структуры или объявлен в пространстве имен, он должен уточняться именем класса или структуры или именем пространства имен при использовании вне структуры, класса или области пространства имен. If the identifier is a member of a class or struct, or declared in a namespace, it must be qualified by the class or struct name, or the namespace name, when used outside the struct, class, or namespace scope. Кроме того, пространство имен должно быть помещено в область с помощью using директивы, такой как using namespace std; , или имя члена должно быть помещено в область с помощью using объявления, такого как using std::string; . Alternatively, the namespace must be brought into scope by a using directive such as using namespace std;, or the member name must be brought into scope by a using declaration, such as using std::string;. В противном случае неполное имя считается необъявленным идентификатором в текущей области. Otherwise, the unqualified name is considered to be an undeclared identifier in the current scope.

    Если идентификатор является тегом для определяемого пользователем типа, например, class или struct , тип тега должен быть объявлен до его использования. If the identifier is the tag for a user-defined type, for example, a class or struct, the type of the tag must be declared before it can be used. Например, объявление struct SomeStruct < /*…*/ >; должно существовать, прежде чем можно будет объявить переменную SomeStruct myStruct; в коде. For example, the declaration struct SomeStruct < /*…*/ >; must exist before you can declare a variable SomeStruct myStruct; in your code.

    Если идентификатор является псевдонимом типа, тип должен быть объявлен с помощью using объявления или typedef перед тем, как его можно будет использовать. If the identifier is a type alias, the type must be declared by using a using declaration or typedef before it can be used. Например, необходимо объявить, using my_flags = std::ios_base::fmtflags; прежде чем можно будет использовать my_flags в качестве псевдонима типа для std::ios_base::fmtflags . For example, you must declare using my_flags = std::ios_base::fmtflags; before you can use my_flags as a type alias for std::ios_base::fmtflags.

    1. Статическая инициализация

    При создании статической переменной, возникает вопрос, когда эта переменная будет инициализирована, сколько времени она проживёт и когда будет уничтожена? Статическая инициализация позволяет нам создать переменную, которая будет инициализирована до запуска программы со временем жизни в течение всей программы и уничтожении после завершения. Такие константные переменные не зависят от исполнения — они всегда существуют, создаются во время компиляции и располагаются в исполнимом файле (в бинарнике). Как результат: нулевые накладные расходы, ранняя диагностика проблем и безопасность. Вопрос об использовании статической инициализации напрямую зависит от предметной области разрабатываемого проекта — чем ниже уровень, тем соблазн использования выше, а иногда и критичен, тут скорость решает всё.

    Логические операторы

    В то время как операторы сравнения используются для проверки конкретного условия: ложное оно или истинное, они могут проверить только одно условие за определенный промежуток времени. Но бывают ситуации, когда нужно протестировать сразу несколько условий. Например, чтобы узнать, выиграли ли мы в лотерею, нам нужно сравнить все цифры купленного билета с выигрышными. Если в лотерее 6 цифр, то нужно выполнить 6 сравнений, все из которых должны быть true.

    Также иногда нам нужно знать, является ли хоть одно из нескольких условий истинным. Например, мы не пойдем сегодня на работу, если больны или слишком устали, или если выиграли в лотерею. Нам нужно проверить, является ли хоть одно из этих 3-х условий истинным. Как это сделать? С помощью логических операторов! Они позволяют проверить сразу несколько условий за раз.

    В языке C++ есть 3 логических оператора:

    Оператор Символ Пример Операция
    Логическое НЕ ! !x true, если x — false и false, если x — true
    Логическое И && x && y true, если x и y — true, в противном случае — false
    Логическое ИЛИ || x || y true, если x или y — true, в противном случае — false

    Короткий цикл вычислений

    Для того, чтобы логическое И возвращало true, оба операнда должны быть истинными. Если первый операнд вычисляется как false, то оператор И должен сразу возвращать false независимо от результата второго операнда (даже без его обработки). Это называется коротким циклом вычисления (англ. «short circuit evaluation») и выполняется он, в первую очередь, в целях оптимизации.

    Аналогично, если первый операнд логического ИЛИ является true, то и всё условие будет true (даже без обработки второго операнда).

    Как и в случае с оператором ИЛИ, новички иногда путают логическое И (&&) с побитовым И (&).

    Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure

    Эта ошибка может возникать при вызове универсальной функции, если аргумент предполагаемого типа не может быть выведен из используемых параметров. This error can occur when calling a generic function, if the intended type argument cannot be deduced from the parameters used. Дополнительные сведения см. в разделе универсальные функции (C++/CLI). For more information, see Generic Functions (C++/CLI).

    А где же побитовое исключающее ИЛИ (XOR)?

    Побитовое исключающее ИЛИ (XOR) — это логический оператор, который используется в некоторых языках программирования для проверки на истинность нечётного количества условий.

    Побитовое исключающее ИЛИ (XOR)
    Левый операнд Правый операнд Результат
    false false false
    false true true
    true false true
    true true false

    В языке C++ нет такого оператора. В отличии от логических И/ИЛИ, к XOR не применяется короткий цикл вычислений. Однако его легко можно сымитировать, используя оператор неравенства (!=):

    if ( a != b ) . . . // a XOR b (предполагается, что a и b имеют тип bool)

    Можно также расширить количество операндов:

    if ( a != b != c != d ) . . . // a XOR b XOR c XOR d (предполагается, что a, b, c и d имеют тип bool)

    Следует отметить, что вышеприведенные шаблоны XOR работают только, если операнды имеют логический (а не целочисленный) тип данных. Если вы хотите, чтобы это работало и с целыми числами, то используйте оператор static_cast.

    Форма XOR, которая работает и с другими типами данных (с помощью оператора static_cast мы можем конвертировать любой тип данных в тип bool):

    if ( static_cast bool > ( a ) != static_cast bool > ( b ) != static_cast bool > ( c ) != static_cast bool > ( d ) ) . . . // a XOR b XOR c XOR d, для любого типа, который может быть конвертирован в тип bool

    Источник

    Содержание

    1. Как исправить ошибку «cout не является однозначным»?
    2. Как исправить ошибку «cout не является однозначным»?
    3. Неоднозначность переменной count
    4. Решение
    5. Cout не является однозначным ошибка c
    6. Решение
    7. Решение
    8. Идентификатор не объявлен The identifier is undeclared
    9. 1. Статическая инициализация
    10. Логические операторы
    11. Короткий цикл вычислений
    12. Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure
    13. А где же побитовое исключающее ИЛИ (XOR)?

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

    А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
    В чем проблема?(
    Подскажите пожаалулйстааа))))

    #include
    #include
    using namespace std;

    country();
    country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
    country(const country& CONTRY);

    char* name;
    double t_winter, t_spring, t_summer, t_autumn;

    class NewCountry : public country <
    public:

    NewCountry();
    NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
    NewCountry(const NewCountry& COUNTRY);

    unsigned short int gpolusharie() < return polusharie; >;
    string sReturnpolusharie();

    private:
    unsigned short int polusharie;
    >;

    country::country()
    <
    name = NULL;
    t_winter = NULL;
    t_spring = NULL;
    t_summer = NULL;
    t_autumn = NULL;
    >;

    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;
    >;

    ostream& 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 «. ОШИБКА:данные отсутствуют. «;
    >;

    ostream& 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;
    >;

    void main() <
    setlocale(LC_ALL, «Russian»);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N;
    double winter = lol[0].ReturnT_Winter;
    double summer = lol[0].ReturnT_Summer;
    NewCountry* lol;
    cout > N;
    lol = new NewCountry[N];
    cout > lol[i];
    for ( int i = 0; i lol[i].ReturnT_Summer ())
    summer = lol[i].ReturnT_Summer();
    >
    >;
    cout Вопрос задан более двух лет назад

  • 2539 просмотров
  • Источник

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

    А так же выдает ошибку ‘эта переменная не содержит класс хранения или спецификатор типа’
    В чем проблема?(
    Подскажите пожаалулйстааа))))

    #include
    #include
    using namespace std;

    country();
    country(char* aname , double at_winter, double at_spring,double at_summer,double at_autumn);
    country(const country& CONTRY);

    char* name;
    double t_winter, t_spring, t_summer, t_autumn;

    class NewCountry : public country <
    public:

    NewCountry();
    NewCountry(char* aname, double at_winter, double at_spring, double at_summer, double at_autumn, int apolusharie);
    NewCountry(const NewCountry& COUNTRY);

    unsigned short int gpolusharie() < return polusharie; >;
    string sReturnpolusharie();

    private:
    unsigned short int polusharie;
    >;

    country::country()
    <
    name = NULL;
    t_winter = NULL;
    t_spring = NULL;
    t_summer = NULL;
    t_autumn = NULL;
    >;

    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;
    >;

    ostream& 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 «. ОШИБКА:данные отсутствуют. «;
    >;

    ostream& 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;
    >;

    void main() <
    setlocale(LC_ALL, «Russian»);
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int N;
    double winter = lol[0].ReturnT_Winter;
    double summer = lol[0].ReturnT_Summer;
    NewCountry* lol;
    cout > N;
    lol = new NewCountry[N];
    cout > lol[i];
    for ( int i = 0; i lol[i].ReturnT_Summer ())
    summer = lol[i].ReturnT_Summer();
    >
    >;
    cout Вопрос задан более двух лет назад

  • 2539 просмотров
  • Источник

    Неоднозначность переменной count

    Доброго времени суток. Использую VS2013. Подскажите пожалуйста, по какой причине глобальная переменная, в приведенном ниже коде, не является однозначной и во что её переименовать. Заранее спасибо!
    PS/ Я совсем начинающий ученик, не судите строго)

    Не компилируется код из-за переменной count
    Подскажите count же в C++ не ключевое слово и ее можно использовать в виде переменной. Программный.

    Нюансы синтаксиса: statement for — как понимать запись for (count=0, mask=1; count != 16; count++, mask 8

    kailinka,
    Рекомендую обращать внимание на компилятор и ИДЕ,если ему(ей) что-то не нравится лучше самостоятельно выяснить в чем проблема и, по возможности,исправить.

    Вот у вас в функции func2/0 есть локальная переменная.Её обязательно называть count?
    Какую переменную вы хотите,чтобы использовал компилятор?

    Добавлено через 5 минут
    Заодно можете ознакомится с темой:
    Вопрос об области видимости переменной

    S_el, локальная переменная просто «перекроет» глобальную. Проблема в using’е. В студии в неявно подрубается (или только некоторые объявления из него, не знаю).

    kailinka, уберите using namespace std или назовите переменные count по другому.
    В STL есть сущность с именем count, с ней и происходит конфликт имен.
    using namespace std

    Решение

    Шилдт просто не мог предсказать как включаются заголовки в мелкомягком компиляторе. А так код вполне себе валидный.

    Добавлено через 39 секунд

    Спасибо! Получилось!

    Добавлено через 11 минут
    Получилось чтобы не выдавались ошибки, но программа при отладке пишет что то типа » cout не является внутренней или внешней командой, не является каким-то файлом», не успеваю прочитать более подробно т.к. не смотря на system(«Pausa>nul»); cmd оч быстро закрывается(.

    Добавлено через 12 минут
    Вопрос решила! Ругался как раз таки на system(«Pausa>nul»);, теперь буду искать решение проблемы с закрывающейся cmd. Всем большое спасибо за ответы!

    Источник

    Cout не является однозначным ошибка c

    Дополнительные сведения о: Ошибка компилятора C2065

    Решение

    прежде чем любые другие включают директивы.

    Решение

    прежде чем любые другие включают директивы.

    Я только начал разбираться с плюсами. И тут же воткнулся в какой-то непонятный для меня косяк.

    Вроде все верно. Но при компиляции ошибка:

    Я почитал у вас тут похожие темы. Пишут, что область имен надо объявить, она есть. Вроде вообще все как надо. Я использую VS 2017 для написания кода. Объясните, пожалуйста, что не так.

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

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

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

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

    Идентификатор не объявлен The identifier is undeclared

    Если идентификатор является переменной или именем функции, его необходимо объявить перед тем, как его можно будет использовать. If the identifier is a variable or a function name, you must declare it before it can be used. Перед использованием функции в объявлении функции также должны быть включены типы его параметров. A function declaration must also include the types of its parameters before the function can be used. Если переменная объявлена с помощью auto , компилятор должен иметь возможность определить тип из его инициализатора. If the variable is declared using auto, the compiler must be able to infer the type from its initializer.

    Если идентификатор является членом класса или структуры или объявлен в пространстве имен, он должен уточняться именем класса или структуры или именем пространства имен при использовании вне структуры, класса или области пространства имен. If the identifier is a member of a class or struct, or declared in a namespace, it must be qualified by the class or struct name, or the namespace name, when used outside the struct, class, or namespace scope. Кроме того, пространство имен должно быть помещено в область с помощью using директивы, такой как using namespace std; , или имя члена должно быть помещено в область с помощью using объявления, такого как using std::string; . Alternatively, the namespace must be brought into scope by a using directive such as using namespace std;, or the member name must be brought into scope by a using declaration, such as using std::string;. В противном случае неполное имя считается необъявленным идентификатором в текущей области. Otherwise, the unqualified name is considered to be an undeclared identifier in the current scope.

    Если идентификатор является тегом для определяемого пользователем типа, например, class или struct , тип тега должен быть объявлен до его использования. If the identifier is the tag for a user-defined type, for example, a class or struct, the type of the tag must be declared before it can be used. Например, объявление struct SomeStruct < /*…*/ >; должно существовать, прежде чем можно будет объявить переменную SomeStruct myStruct; в коде. For example, the declaration struct SomeStruct < /*…*/ >; must exist before you can declare a variable SomeStruct myStruct; in your code.

    Если идентификатор является псевдонимом типа, тип должен быть объявлен с помощью using объявления или typedef перед тем, как его можно будет использовать. If the identifier is a type alias, the type must be declared by using a using declaration or typedef before it can be used. Например, необходимо объявить, using my_flags = std::ios_base::fmtflags; прежде чем можно будет использовать my_flags в качестве псевдонима типа для std::ios_base::fmtflags . For example, you must declare using my_flags = std::ios_base::fmtflags; before you can use my_flags as a type alias for std::ios_base::fmtflags.

    1. Статическая инициализация

    При создании статической переменной, возникает вопрос, когда эта переменная будет инициализирована, сколько времени она проживёт и когда будет уничтожена? Статическая инициализация позволяет нам создать переменную, которая будет инициализирована до запуска программы со временем жизни в течение всей программы и уничтожении после завершения. Такие константные переменные не зависят от исполнения — они всегда существуют, создаются во время компиляции и располагаются в исполнимом файле (в бинарнике). Как результат: нулевые накладные расходы, ранняя диагностика проблем и безопасность. Вопрос об использовании статической инициализации напрямую зависит от предметной области разрабатываемого проекта — чем ниже уровень, тем соблазн использования выше, а иногда и критичен, тут скорость решает всё.

    Логические операторы

    В то время как операторы сравнения используются для проверки конкретного условия: ложное оно или истинное, они могут проверить только одно условие за определенный промежуток времени. Но бывают ситуации, когда нужно протестировать сразу несколько условий. Например, чтобы узнать, выиграли ли мы в лотерею, нам нужно сравнить все цифры купленного билета с выигрышными. Если в лотерее 6 цифр, то нужно выполнить 6 сравнений, все из которых должны быть true.

    Также иногда нам нужно знать, является ли хоть одно из нескольких условий истинным. Например, мы не пойдем сегодня на работу, если больны или слишком устали, или если выиграли в лотерею. Нам нужно проверить, является ли хоть одно из этих 3-х условий истинным. Как это сделать? С помощью логических операторов! Они позволяют проверить сразу несколько условий за раз.

    В языке C++ есть 3 логических оператора:

    Оператор Символ Пример Операция
    Логическое НЕ ! !x true, если x — false и false, если x — true
    Логическое И && x && y true, если x и y — true, в противном случае — false
    Логическое ИЛИ || x || y true, если x или y — true, в противном случае — false

    Короткий цикл вычислений

    Для того, чтобы логическое И возвращало true, оба операнда должны быть истинными. Если первый операнд вычисляется как false, то оператор И должен сразу возвращать false независимо от результата второго операнда (даже без его обработки). Это называется коротким циклом вычисления (англ. «short circuit evaluation») и выполняется он, в первую очередь, в целях оптимизации.

    Аналогично, если первый операнд логического ИЛИ является true, то и всё условие будет true (даже без обработки второго операнда).

    Как и в случае с оператором ИЛИ, новички иногда путают логическое И (&&) с побитовым И (&).

    Пример: сбой выведения типа C++/CLI Example: C++/CLI type deduction failure

    Эта ошибка может возникать при вызове универсальной функции, если аргумент предполагаемого типа не может быть выведен из используемых параметров. This error can occur when calling a generic function, if the intended type argument cannot be deduced from the parameters used. Дополнительные сведения см. в разделе универсальные функции (C++/CLI). For more information, see Generic Functions (C++/CLI).

    А где же побитовое исключающее ИЛИ (XOR)?

    Побитовое исключающее ИЛИ (XOR) — это логический оператор, который используется в некоторых языках программирования для проверки на истинность нечётного количества условий.

    Побитовое исключающее ИЛИ (XOR)
    Левый операнд Правый операнд Результат
    false false false
    false true true
    true false true
    true true false

    В языке C++ нет такого оператора. В отличии от логических И/ИЛИ, к XOR не применяется короткий цикл вычислений. Однако его легко можно сымитировать, используя оператор неравенства (!=):

    if ( a != b ) . . . // a XOR b (предполагается, что a и b имеют тип bool)

    Можно также расширить количество операндов:

    if ( a != b != c != d ) . . . // a XOR b XOR c XOR d (предполагается, что a, b, c и d имеют тип bool)

    Следует отметить, что вышеприведенные шаблоны XOR работают только, если операнды имеют логический (а не целочисленный) тип данных. Если вы хотите, чтобы это работало и с целыми числами, то используйте оператор static_cast.

    Форма XOR, которая работает и с другими типами данных (с помощью оператора static_cast мы можем конвертировать любой тип данных в тип bool):

    if ( static_cast bool > ( a ) != static_cast bool > ( b ) != static_cast bool > ( c ) != static_cast bool > ( d ) ) . . . // a XOR b XOR c XOR d, для любого типа, который может быть конвертирован в тип bool

    Источник

    Понравилась статья? Поделить с друзьями:
  • Ошибка активации виндовс код ошибки 0x8007007b
  • Ошибка активации windows 10 0x8007007d
  • Ошибка активации виндовс ключ не подошел
  • Ошибка активации windows 10 0x004c060
  • Ошибка активации виндовс 7 oxc004e003