|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.05.2010, 21:37 | #1 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
объекты класса и динамические массивы
Здравствуйте.
Столкнулся с такой проблемой: Мне необходимо сложить два объекта класса, содержащих динамические массивы. Реализовал я это таким образом: Код:
Как сделать правильно? |
01.06.2010, 00:22 | #2 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Эммм ? покажите класс чтоли ) Ну или методы его с полями )
|
01.06.2010, 00:30 | #3 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Конструктор копирования покажите.
|
01.06.2010, 00:38 | #4 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
если у нас нет динамических данных, то он не нужен<экстрасенс>, хотя наверное они есть =)</экстрасенс>
|
01.06.2010, 00:44 | #5 |
JAVA BEAN
Участник клуба
Регистрация: 22.04.2007
Сообщений: 1,329
|
Наверняка mt - это указатель на указатель, а конструктор копирования отсутствует.
|
01.06.2010, 07:41 | #6 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
|
01.06.2010, 07:48 | #7 |
Пользователь
Регистрация: 23.03.2010
Сообщений: 43
|
Вот мой код полностью:
Код:
|
10.06.2010, 15:46 | #8 | |
Регистрация: 10.06.2010
Сообщений: 4
|
Такая же проблема,реализовал конструктор копирования,но все равно ошибка.помогите кто может.
//конструктор копирования(матрица размером size X size): Цитата:
Последний раз редактировалось kutnyuk; 10.06.2010 в 15:49. |
|
10.06.2010, 15:57 | #9 |
Студент 1 курса
Форумчанин Подтвердите свой е-майл
Регистрация: 27.06.2008
Сообщений: 959
|
kutnyuk, size и arr объявлены как public?
И что за ошибка?
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
|
10.06.2010, 20:27 | #10 |
Регистрация: 10.06.2010
Сообщений: 4
|
Вот код всей программы:
Код HTML:
#include<iostream>
using namespace std;
class matrix
{
int size;
int **arr;
public:
matrix(int a);
~matrix();
matrix(const matrix& a);
matrix& operator+ (const matrix& a);
void show();
};
matrix::matrix(int a=0)
{
size=5;
arr=new int*[size];
for(int i=0;i<size;i++)
arr[i]=new int[size];
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
arr[i][j]=a;
}
matrix::~matrix()
{
for(int i=0;i<size;i++)
delete []arr[i];
delete []arr;
}
matrix::matrix(const matrix &a)
{
size=a.size;
arr=new int*[size];
for(int i=0;i<size;i++)
arr[i]=new int[size];
for(int i=0;i<size;i++)
for(int j=0;j<size;j++)
arr[i][j]=a.arr[i][j];
}
matrix& matrix::operator+ (const matrix& a)
{
matrix temp=*this;
for(int i=0;i<size;i++){
for(int j=0;j<size;j++){
temp.arr[i][j]=arr[i][j]+a.arr[i][j];
}
}
return temp;
}
void matrix::show()
{
for(int i=0;i<size;i++){
cout<<"\n";
for(int j=0;j<size;j++)
cout<<arr[i][j]<<" ";
}
}
void main()
{
matrix obj1(1);
cout<<"\nobj1:";
obj1.show();
matrix obj2(2);
cout<<"\nobj2:";
obj2.show();
matrix obj3(4);
cout<<"\nobj3:";
obj3.show();
obj3=obj1+obj2;
cout<<"\nobj3=obj1+obj2:";
obj3.show();
}
Если закоментировать деструктор - то все работает. Выше писалось,что нужен конструктор копирования - я сделал, но все равно нифига не выходит Последний раз редактировалось kutnyuk; 10.06.2010 в 20:30. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамические объекты | 095 | Общие вопросы Delphi | 2 | 04.06.2011 19:09 |
Реалирация подсчёта ссылок на объекты класса подобно объектом интерфейса | Altera | Общие вопросы Delphi | 2 | 26.05.2010 23:17 |
Объекты, массивы. | smb. | Помощь студентам | 1 | 25.05.2009 19:13 |
Динамические объекты | 095 | Общие вопросы Delphi | 1 | 04.10.2007 21:16 |