Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 11.10.2018, 21:48   #1
Yavorsky
Новичок
 
Регистрация: 08.05.2017
Сообщений: 3
Репутация: 10
По умолчанию Перегрузка операций добавления и удаления нового элемента в динамическом массиве

Здравствуйте, имеется класс представляющий собой понятие динамического массива. Нужно перегрузить операции добавления и удаления нового элемента в динамическом массиве.
Предположим, у меня есть 2 объекта класса, первый - массив из 5 элементов, второй - массив из одного элемента (число). Я хочу добавить второй объект(число) в конец массива, как это можно реализовать?

При запуске программы вылетает ошибка. Наверняка, что-то связанно с выделением памяти, помогите пофиксить, пожалуйста.
Код:

//// ConsoleApplication110.cpp: определяет точку входа для консольного приложения.
////
//
#include "stdafx.h"
#include <iostream>
using namespace std;


class Array
{
private:
	int max;
	double  value;
	
	double *mas;
	
public:
	
	void CreateMas(int n)
	{
		max = n;
		mas = new double[max];
		for (int i = 0; i < max; i++)
		{
			mas[i] = i;
		}
	}

	void ShowMas()
	{
		for (int i = 0; i < max; i++) 
		{
			cout << mas[i] << ' '  ;
		}
		cout << endl;
	}
	void deleteArray(double* massiv) //Очистка памяти
	{
		delete[] massiv;
	}
	
	Array operator+ ( Array& obj)
	{
		Array temp;
		temp.mas = new double[max + 1];
		int k = 0;
		for (k = 0; k < max; k++)
		{
			temp.mas[k] = obj.mas[k];
		}
		
		temp.mas[k] = *obj.mas;

		return temp;

	}



	~Array()
	{
		delete[]mas;
	}

	friend ostream& operator<<(ostream&, Array&);
};
/*ostream& operator<<(ostream& o, Array& x) {
	return o << x.ShowMas;
}
*/




int main()
{
	setlocale(LC_ALL, "Russian");
	
	Array a, b ,c  ;
	
	a.CreateMas(5);
	b.CreateMas(1);
	a.ShowMas();
	b.ShowMas();
	c = a + b;
	c.ShowMas();
	return 0;
}

Yavorsky вне форума   Ответить с цитированием
Старый 11.10.2018, 22:52   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,253
Репутация: 2054

icq: 216409213
По умолчанию

Цитата:
Сообщение от Yavorsky Посмотреть сообщение
Предположим, у меня есть 2 объекта класса, первый - массив из 5 элементов, второй - массив из одного элемента (число). Я хочу добавить второй объект(число) в конец массива, как это можно реализовать?
Получаете суммой кол-во элементов. Создаете новый большой массив или реаллок старому, а лучше сразу возьмите вектор.

Цитата:
Сообщение от Yavorsky Посмотреть сообщение
При запуске программы вылетает ошибка. Наверняка, что-то связанно с выделением памяти, помогите пофиксить, пожалуйста.
Допишите конструктор перемещения и обнулите указатель во временном объекте.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура удаления в односвязном динамическом списке по ключевым полям Riesig Помощь студентам 0 28.03.2013 21:03
Поиск максимального и минимального элемента в одномерном динамическом массиве GMeloman Общие вопросы C/C++ 7 11.06.2012 10:09
Замена максимального элемента минимальным и наоборот в динамическом двумерном массиве dreik92 Microsoft Office Excel 2 13.04.2011 12:04
операции над стеком в С - добавления и удаления следующего элемента стека Matadora Помощь студентам 0 04.09.2010 21:16
процедуры переворотов, добавления, удаления элемента.. для AVL дерева smalsvoloch Помощь студентам 0 03.12.2009 21:28


17:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru