Форум программистов, компьютерный форум CyberForum.ru

Сбиваются указатели при переходе между функциями - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести дробное число, заданного в двоичной системе счисления, в шестнадцатеричную http://www.cyberforum.ru/cpp-beginners/thread1491733.html
Дано дробное число в двоичной системе счисления, т.е. последовательность цифр 0 и 1, разделенных точкой. Составить программу перевода этого числа в шестнадцатеричную систему счисления.
C++ Как убрать округление? Доброго времени суток. Компилятор Dev-c++ выдает при делении целое вместо дробного. Пробовал setf, usetf, precision. Чёта не получается блин. Помогите набраться опыта неофиту! Заранее спасибо. #include <iostream> int main() { int x = 1; int y = 10; http://www.cyberforum.ru/cpp-beginners/thread1491717.html
Как вывести элементы вектора, являющиеся членами класса? C++
#include <iostream> #include <vector> #include <cstdio> using namespace std; typedef struct moment{ int h,m,s; }moment; int main()
C++ Файл, данные из столбца в строку
суть есть файл, в нем записи о людях, нужно перевести записи из столбца в строку и наверное убрать лишние символы, считать началом строки "(((" концом ")))" вдруг есть у кого что нить подобное или кто может помочь. делов как я понял на пару минут. признак выгрузки=1 -------------------------------------------------------------------------- (((ОК ...
C++ Вывести числа в цикле http://www.cyberforum.ru/cpp-beginners/thread1491706.html
Написать простую программу с использованием цикла for
C++ Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3 Даны три строки: S1, S2, S3. Заменить в строке S1 первое вхождение строки S2 на S3. подробнее

Показать сообщение отдельно
DrOffset
6423 / 3797 / 878
Регистрация: 30.01.2014
Сообщений: 6,585
02.07.2015, 13:28     Сбиваются указатели при переходе между функциями
Керра, Вот такой конструктор копирования:
C++
1
2
3
4
5
6
7
Polynom::Polynom(Polynom const &right)
    : power(right.power)
    , koef(new float[power+1])
{
    for (int i = 0; i <= power; i++)
        koef[i] = right[i];
}
Вот такой оператор присваивания:
C++
1
2
3
4
5
6
7
8
Polynom & Polynom::operator=(Polynom const &right)
{
    if(&right != this)
    {
        Polynom(right).swap(*this);
    }
    return *this;
}
Функцию swap определить в private:
C++
1
2
3
4
5
    void swap(Polynom & other)
    {
        std::swap(other.power, power);
        std::swap(other.koef, koef);
    }
Добавлено через 1 минуту
Цитата Сообщение от Керра Посмотреть сообщение
Я в курсе, но пишу для студентика, а студентики так не делают, я и так с качеством обычно перебарщиваю
Может и не делают, но код получился некорректный чуть менее, чем полностью.
Программа же в первую очередь должна работать.
А если он соберется ее компилировать не в VS, то просто не сможет ее собрать. Т.к. rvalue нельзя цеплять к неконстантной ссылке.

Добавлено через 2 минуты
Цитата Сообщение от Керра Посмотреть сообщение
C++
1
2
3
4
Polynom operator=(Polynom &right);
Polynom operator+=(Polynom &right); 
Polynom operator-=(Polynom &right); 
Polynom operator*=(Polynom &right);
Здесь ссылки надо оставить. Т.к. эти операторы меняют существующий объект, а не создают новый.
 
Текущее время: 09:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru