myint.cpp: в функции
MyInt operator+(const MyInt&, const MyInt&)':
const MyInt ‘as
myint.cpp:193: error: passingthis' argument of
void MyInt :: Grow () ‘сбрасывает квалификаторы
myint.cpp: 194: ошибка: прохождениеconst MyInt' as
этот аргументvoid MyInt::Grow()' discards qualifiers
массив ‘undeclared (сначала используйте эту функцию)
myint.cpp:219: error:
myint.cpp: 219: ошибка: (Каждый необъявленный идентификатор сообщается только один раз для каждой функции, в которой он появляется.)
myint.cpp: в функцииMyInt operator*(const MyInt&, const MyInt&)':
const MyInt ‘as
myint.cpp:252: error: passingthis' argument of
void MyInt :: Grow () ‘сбрасывает квалификаторы
myint.cpp: 262: ошибка: прохождениеconst MyInt' as
этот аргументvoid MyInt::Grow()' discards qualifiers
int * ‘to
myint.cpp:290: error: invalid conversion fromint'
MyInt :: Минт (интермедиат)»
myint.cpp:290: error: initializing argument 1 of
все мои ошибки на случай, если кто-нибудь может помочь.
и мой код здесь http://codepad.org/TlTFLjYd для файла cpp
Номера строк в кодовой панели не совпадают с ошибками, которые вы опубликовали.
myint.cpp: 193 (строка 171): In MyInt operator+ (const MyInt& x, const MyInt& y)
, ты звонишь x.Grow();
, тем не мение x
является постоянным Вы не можете изменить объект const. Найдите другой способ реализовать свой operator+
это не включает изменение x
или же y
, Например, начать с MyInt z = x;
а затем работать над z
,
myint.cpp: 219 (строка 197): вы пишете array.numArray
, Тем не менее, вы никогда не заявляли array
,
Ранее у вас есть код: (скобки добавлены мной для ясности):
if(x.maxSize > y.maxSize)
{
MyInt array[x.maxSize];
}
else
{
MyInt array[y.maxSize];
}
Эти массивы являются локальными для блока, в котором они объявлены, они больше не существуют после этого блока.
Также недопустимо иметь переменную в качестве размера массива. Ваш компилятор может реализовать его как нестандартное расширение.
Чтобы исправить все это, один из вариантов будет:
std::vector<MyInt> array ( std::max(x.maxSize, y.maxSize) );
myint.cpp: 290 (строка 216). Ваша функция возвращает MyInt
Однако вы звоните return array;
, который является массивом. Я не уверен, что вы хотели сделать здесь, поэтому я не могу порекомендовать исправление. Но я бы предположил, что раньше вы хотели массив int
, а не массив MyInt
, а затем вы хотите, чтобы этот новый массив был numArray
из MyInt
что ты вернешься.
Других решений пока нет …