0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
1 | ||||||
Ошибка при создании массива (бинарный "=": не найден оператор, принимающий правый операнд типа "Vector" (или приемлемое)30.11.2020, 20:15. Показов 1011. Ответов 33
Метки классы c++ (Все метки)
Создал класс n-мерного вектора, нужно создать массив из 5 n-мерных векторов, при реализации появляется ошибка "бинарный "=": не найден оператор, принимающий правый операнд типа "Vector" (или приемлемое преобразование отсутствует)" Я понимаю, что ошибка в реализации перегрузки оператора присваивания, но найти ее не могу.
0
|
30.11.2020, 20:15 | |
Ответы с готовыми решениями:
33
Error C2679: бинарный "<<": не найден оператор, принимающий правый операнд типа "std::string" (или приемлемое Ошибка C2679: бинарный '=': не найден оператор, принимающий правый операнд типа 'double' binary "оператор": не найден оператор, принимающий правый операнд типа "тип" (или приемлемое преобразование отсутствует) Ошибка : бинарный "<<": не найден оператор, принимающий правый операнд типа point |
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 20:27 | 2 |
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
|
30.11.2020, 20:46 [ТС] | 3 |
попробовал, не помогло, та же ошибка, если будет проще:
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\utility(107,1): error C2679: бинарный "=": не найден оператор, принимающий правый операнд типа "Vector" (или приемлемое преобразование отсутствует) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(86,10): message : может быть "Vector &Vector::operator =(Vector &)"
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
30.11.2020, 20:52 | 4 | |||||
Здесь то же самое. Нафига ты здесь делаешь new Vector[size]? Чему у тебя равен size? Хотя бы в конструкторе его определи нормально
А здесь что ты пытаешься сделать? У тебя память под Array уже выделена, кто её будет удалять?
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 21:01 [ТС] | 5 | |||||
Может мы недопоняли друг друга, а может ты невнимательно код посмотрел, объясню, я в классе Vector создал массив, где хранится n-мерный вектор, для этого используется один массив. В классе ArrayVec, который сделан для создания массивов векторов тоже требуется массив, size задается в
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 21:07 | 6 |
В смысле, недопоняли? Ты исправил, то, что я тебе показал, или недопонял чего-то?
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
|
30.11.2020, 21:20 [ТС] | 7 |
Скорее, 2 вариант, я правильно понимаю, что ты предлагаешь след. решение проблемы
int* vec = nullptr;-написать это в 11 строчке удалить CreateArray или же массив, где хранится сам вектор?
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
30.11.2020, 21:34 | 8 | |||||
Ты сначала исправь грубые ошибки.
И что-то я не вижу, что где-то ругалось на оператор = Добавлено через 4 минуты
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 21:47 [ТС] | 9 | |||||
поставил const как ты сказал, написал int* vec = nullptr; в 11 строчке, теперь ошибка Critical error detected c0000374
Добавлено через 48 секунд Попробовал создать массив из 2 элементов, так все работает, но когда пытаюсь создать 3 и более получается крит. ошибка
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 21:49 | 10 |
Уже лучше. Насколько я понял, ошибка "бинарный "=": не найден оператор ушла?
Покажи, как сделал.
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 21:53 [ТС] | 11 | |||||
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||||||
30.11.2020, 22:01 | 12 | ||||||||||
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 22:06 [ТС] | 13 | |||||
я прописал это
1>C:\Users\keks\source\repos\ed\ed\ed.cpp(30,5): error C2382: Vector::Vector: переопределение; разные спецификации исключений 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(14): message : см. объявление "Vector::Vector" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(32,14): error C2059: синтаксическая ошибка: константа 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(32,16): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(32,16): warning C4183: setN: отсутствие возвращаемого типа; предполагается функция-член, возвращающая "int" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(35,9): error C3861: setN: идентификатор не найден 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(38,13): error C2065: vec: необъявленный идентификатор 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(40,13): error C2065: vec: необъявленный идентификатор 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(41,13): error C3861: CountLet: идентификатор не найден 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(45,13): error C2065: vec: необъявленный идентификатор...
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 22:09 | 14 |
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
|
30.11.2020, 22:13 [ТС] | 15 |
а как исправить синтаксические ошибки, если их нет?
1>C:\Users\keks\source\repos\ed\ed\ed.cpp(74,5): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(74,5): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(78,29): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "z" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(79,5): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(79,5): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(83,29): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "z" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(84,5): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(84,5): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(88,28): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "z" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(88,37): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(88,37): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(92,28): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "z" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(93,5): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(93,5): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(97,29): error C2146: синтаксическая ошибка: отсутствие ")" перед идентификатором "z" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(98,5): error C2143: синтаксическая ошибка: отсутствие ";" перед "{" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(98,5): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа) 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,11): error C2143: синтаксическая ошибка: отсутствие ";" перед "&" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,11): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,5): error C2373: Vector: переопределение; различные модификаторы типа 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(34): message : см. объявление "Vector" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,33): error C2065: z: необъявленный идентификатор 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,34): error C2473: operator =: выглядит как определение функции, но без списка параметров. 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(103,34): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(104,5): error C2448: =: вероятно, инициализатор, использующий стиль функции, является определением функции 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(113,1): error C2059: синтаксическая ошибка: } 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(113,1): error C2143: синтаксическая ошибка: отсутствие ";" перед "}" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(118,11): error C2143: синтаксическая ошибка: отсутствие ";" перед "*" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(118,11): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(118,18): error C2238: непредвиденные лексемы перед ";" 1>C:\Users\keks\source\repos\ed\ed\ed.cpp(122,9): error C2065: Array: необъявленный идентификатор
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 22:18 | 16 |
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 22:19 [ТС] | 17 | |||||
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 22:24 | 18 |
Во-первых, я вроде не так показывал
Во-вторых, зачем ты оставил свои конструкторы?
0
|
0 / 0 / 0
Регистрация: 27.10.2019
Сообщений: 29
|
||||||
30.11.2020, 22:34 [ТС] | 19 | |||||
удалил свои констукторы, все заработало, только теперь проблема, я не могу получить доступ к vec[i]
Вызвано исключение: нарушение доступа для записи. this->vec было 0x1110112.
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
30.11.2020, 22:40 | 20 |
Для начала - я что, в пустоту пишу?
Добавлено через 4 минуты Во-вторых, вот это вообще что? Я тебе показал, как нужно делать конструкторы для класса Vector. В классе ArrayVec нужно сделать по-аналогии.
0
|
30.11.2020, 22:40 | |
30.11.2020, 22:40 | |
Помогаю со студенческими работами здесь
20
Ошибка C2679 бинарный "<<": не найден оператор, принимающий правый операнд типа бинарный "<": не найден оператор, принимающий левый операнд типа "const _Ty" (или приемлемое преобразование отсутствует) Ошибка в коде. не найден оператор, принимающий правый операнд типа 'int' Ошибка: Не найден оператор, принимающий правый операнд типа 'overloaded-function' Бинарный "=": не найден оператор, принимающий правый операнд типа Ошибка в VS: бинарный "=": не найден оператор, принимающий правый операнд типа "complex" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |