У меня есть класс, который создает массив объектов из другого класса (класс массива друг)Массив объектов не работает правильно
class vector_XXL
{
int i=0,n=0;
XXL_nr *XXLvector;
public:
vector_XXL(int y)
{
n = y;
XXLvector = new XXL_nr[y];}
п размер массива. XXL_nr - класс, который создает большие числа, представленные как связанные списки (каждая цифра имеет точку в списке)
Я хочу, чтобы произведение каждого 2 числа из 2 объектов массива находилось в тех же позициях. Так, например, v [i] * d [i], для i = 0, n;
Это функция, которая должна сделать это, но он не работает правильно:
void produs_scalar(vector_XXL A)
{
XXL_nr temp(2),temp1(2),temp2(2),result(2);
vector_XXL vector_result(n);
temp1 = this->XXLvector[0];
temp2 = A.XXLvector[0];
temp1.addition(temp2);
for(i=0;i<n;i++)
{ temp = this->XXLvector[i].product(A.XXLvector[i]);
vector_result.XXLvector[i] = temp;
}
for(i=0;i<n;i++)
result= temp.product(vector_result.XXLvector[i]);
result.print();
}
Я использовал temp1 и temp2, чтобы проверить, могу ли я использовать метод продукта (определенный в классе XXL_nr) на 2 XXL_nr. Но результат тот же. Проблема в том, что в первом цикле он выполняет продукт, он возвращает правильный ответ для этого:> XXLvector [i] .product (A.XXLvector [i]); но он не переходит в i-ю позицию, вся программа просто зависает там после возврата метода продукта. Теперь я считаю, что проблема решена, потому что я попытался сделать продукт без использования массива (только для типов XXL_nr), и метод больше не зависает. Пример:
void produs_scalar()//vector_XXL &A)
{
XXL_nr B(2), C(2), D;
cout<<"insert number B";
cin>> B;
cout<<"number C";
cin>>C;
D=B.product(C);
cout<<D;
Здесь все работает нормально. продукт methos возвращается, а код переходит в cout<<D;
.
Я читал по одной теме, что, когда программа зависает, это происходит из-за чего-то, указывающего на случайную память, и программа просто зависает, но я понятия не имею, как отлаживать это или как проверить, так ли это.
Я понимаю, о чем вы говорите. Вы правы ... без класса XXL_nr не так много, что кто-либо может вывести, но у меня есть только 1k строк кода только на этом классе, и я не думаю, что это поможет. Спасибо, хотя, я посмотрю, что я могу сделать ... Я странный, потому что я могу cout, cin, итерации по циклу, но я просто не могу для жизни меня заставить его вернуть результат из продукта, хотя продукт делает все правильно, я напечатал результат до консоли до того, как он достиг утверждения return. Я просто не могу понять, почему он не возвращается ... – Ryncops