class Setr
{
private:
int *ptr; // указатель на массив
int size; // размер массива
public:
Setr();
Setr(int );
Setr(const Setr &);
~Setr();
void setSetr();
void getSetr();
int &operator[] (int);
Setr &operator+= (const int &);
Setr &operator-= (const int &);
Setr operator+ (Setr &);
Setr operator* (Setr &);
Setr operator/ (Setr &);
};
Setr Setr::operator+ (Setr &s)
{
Setr summ;
int i = 0;
summ.ptr[0] = ptr[i];
for (i = 1; i < size; i++)
{
summ += ptr[i];
summ.getSetr();
}
i = 0;
bool f = false;
for (i = 0; i < s.size; i++)
{
for (int k = 0; k < size; k++)
{
if (s.ptr[i] == ptr[k])
{
f = true;
break;
}
}
if (f == true)
{
f = false;
continue;
}
else
summ += s.ptr[i];
summ.getSetr();
}
return summ;
}
Setr::Setr()
{
size = 1;
ptr = new int[size];
ptr[0] = 0;
}
Setr::Setr(int Setrsize)
{
size = Setrsize;
ptr = new int[Setrsize];
for (int i = 0; i < Setrsize; i++)
ptr[i] = 0;
}
Setr::Setr(const Setr &SetrToCopy)
:size(SetrToCopy.size)
{
ptr = new int[SetrToCopy.size];
for (int i = 0; i < SetrToCopy.size; i++)
ptr[i] = SetrToCopy.ptr[i];
}
Метод суммы не возвращает значение массива
Setr &Setr::operator+ (Setr &s)
{
Setr summ;
return summ;
}
У Вас в коде функция возвращает ссылку Setr &
.
Ссылка возвращается на объект Setr summ;
, который существует только внутри функции (а возвращается вы во вне), поэтому принимающая сторона получает ссылку на уже несуществующий объект (функция же закончила выполняться, все внутрифункционные объекты перестали существовать)
Поэтому для исправления ошибки просто возвращайте само значение:
Setr Setr::operator+ (Setr &s)
{
Setr summ;
return summ;
}
Произойдёт копирование Setr summ и всё будет в порядке.
P.S.
есть более извратный вариант - возвращать указатель
Setr* Setr::operator+ (Setr &s)
{
Setr* summ = new Setr;
return summ;
}
правда во-первых надо будет его самому потом удалять, а во-вторых вряд ли Вам нужны такие сложности (где-то такой код уместен, но избыточен для Вашего примера).
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Пишу локатор, необходимо чтобы он искал значение по условию, те одно условие или другое
Стараюсь создать выпадающее меню средствами CSS но подпункты в браузере не отображаютсяВижу только горизонтальное меню