Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не понятно шо за ошибка? https://www.cyberforum.ru/ cpp-beginners/ thread854680.html
Здорова! Пытаюсь создать список вот код: #include <iostream> using std::cout; using std::endl; using std::cin; template<class T> class List//optimal6nui {
C++ Вычислить среднее геометрическое. ФУНКЦИИ
Вычислить среднее геометрическое для каждого элемента одномерного массива по следующему правилу : (см. картинку) Использовать функцию вычисления среднего геометрического одномерного массива.
Предел макисально целого числа C++
Подскажите пожалуйста, В СРР есть предел макисально целого числа он записан в long long int, есть ли какая-то возможность обойти этот предел. P.S. Если не понятно вышенаписанное, я имел ввиду, что...
C++ Поиск остовного леса методом Соллина Доброго времени суток. Передо мной встала задача найти остовной лес минимальной стоимости методом Соллина. Интернет предложил единственный вариант реализации данного алгоритма (приведён ниже). Сразу... https://www.cyberforum.ru/ cpp-beginners/ thread854651.html
C++ Итерационные и рекурсивные алгоритмы https://www.cyberforum.ru/ cpp-beginners/ thread854644.html
Вычислить на ЭВМ значение суммы членов бесконечного ряда с заданной точностью и значение суммы, определяемое пределом суммы ряда ( по формуле). Напечатать значения сумм и число циклов ряда, вошедших...
Чистая виртуальная функция C++
Скажите, может ли чистая виртуальная функция иметь тело? В книге написано что может, но не написано как. Пытался сам определить по-разному - не получилось. В интернете нашел пару примеров с телами,...
Надо написать функцию, которая по массиву действительных чисел x1, x2, ..., xn находит произведение положительных элементов массива C++
Надо написать функцию, которая по массиву действительных чисел x1, x2, ..., xn находит произведение положительных элементов массива.Вот у меня уже есть программа, только здесь для 10 элементов. Как...
C++ vector.clear У меня вопрос по поводу метода clear(). Пусть у меня в векторе было 30 элементов, после вызова этого метода их стало 0, поэтому size() тоже вернет 0. Но вот capacity() показывает 30, т.е. если я... https://www.cyberforum.ru/ cpp-beginners/ thread854581.html
C++ точность, настраиваемая вручную https://www.cyberforum.ru/ cpp-beginners/ thread854568.html
Мне нужно произвести расчет с точность 27 знаков после запятой. Long double не хватает. Как определить вручную? Добавлено через 2 часа 4 минуты :umnik:
C++ FreeConsole не работает FreeConsole не работает если программу запустить через другую программу командой system("start путь к программе"); а если саму программу без посторонних включить то работает, что делать https://www.cyberforum.ru/ cpp-beginners/ thread854559.html
0 / 0 / 1
Регистрация: 26.05.2012
Сообщений: 17
03.05.2013, 17:38  [ТС] 0

Ошибка в конструкторе копирования

03.05.2013, 17:38. Просмотров 490. Ответов 3
Метки (Все метки)

Ответ

Цитата Сообщение от Tulosba Посмотреть сообщение
vruleb, стандартные классы использовать нельзя? 32 строка, кстати, лишняя.
Цитата Сообщение от abit Посмотреть сообщение
oO
C++
1
2
3
4
5
6
7
8
9
10
Pol(Pol &e)  // конструктор копирования
   {
       Pol *z=new Pol();
       Element *i=e.first;  // указатель на первый элемент входного многочлена
       while(i)
       {
           cout << i->getData();
           Add(i->getData());  // добавить все элементы в многочлен
           i=i->next;
       }
копайте в теорию c начала, мой мозг отказался это вообще понимать


тут вы выделяете память для Pol, в адресе z, в конструкторе этот адрес не используете, по выходу из конструктора z как указатель помирает, память остаётся, непонятно зачем

далее

C++
1
Add(i->getData());
вообще шикарно, вы хотели прибавить к адресу функции getData() единицу что ли? дело в том, что как выполнится i->getData() она вернёт вам число в поле *(i->data) и никакой связи с полем иметь не будет

если эти измышления описать в более-менее логичном формате должно быть что-то типа такого
C++
1
2
3
4
5
6
7
8
9
10
11
Pol(Pol &e)
   {
       this->first = new Element;
       this->last = new Element;
       Element *i = this->first;
       while (i)
       {
             i->setData(i->getData()+1);
             i=i->next;
       }
   }
но опять же тут надо вникать в логику программы, чтобы знать что и куда копировать, а я всё больше вникаю в ваш конструктор копирования



ничего странного, там не вызывается конструктор копирования, вызывается впервые он у вас при передачи параметра b в функцию test, чтобы создать локальную копию Pol для внутренностей функции test
Да, действительно, строка Pol *z=new Pol() лишняя, забыл удалить её после экспериментов с этим конструктором.
Стандартные классы, к сожалению, использовать нельзя.
По логике, мой конструктор должен поэлементно добавлять элементы в новый объект с помощью функции Add(). А функция i->getData() же получает значения элементов копируемого объекта и добавляет в новый.

Вернуться к обсуждению:
Ошибка в конструкторе копирования
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2013, 17:38

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Указатель this в конструкторе копирования
Добрый всем вечер. Подскажите пожалуйста, как правильно применить в конструкторе копирования...

Параметр в конструкторе копирования
Есть класс class CMatrix{ valarray&lt;valarray&lt;double&gt; &gt; matrix; public: CMatrix(const...

Зачем нужна ссылка в конструкторе копирования
Вопрос такой, Зачем нужна ссылка в конструкторе копирования? Почему не передавать напр. по...

Ссылка rvalue в конструкторе копирования и операторе присваивания
Здравствуйте. Решил попробовать ссылки rvalue в классе. Привожу часть: \\BinaryArray.h ...

Можно ли в конструкторе копирования поменять один параметр?
Здравствуйте. Мне нужно при создании объекта через конструктор копирования поменять один параметр в...

Исправить ошибку в конструкторе копирования пользовательского класса Sort
Здравствуйте. Такая вот проблема. Обычный конструктор работает без ошибок и подчеркиваний: ...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.