Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 23:41   #1
z3rg
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 25
По умолчанию Перегрузка оператора +

как понять слождить 2 одномерных массива по средствам перегружения оператора +, память выделять динамичиски, использовать конструктор копирования.

я так понял что надо к примеру
массив -1 2 3 4 5 6
массив -2 3 4 5 6 6
после сложения будет 3 5 7 9 11 12
но училка мне сказала что не правильно я вот так и не понял что от меня хотели
делал вот так
Код:
class mycl
{
int *mas, *a;
mycl();
~mycl();
void operator +(mycl &bb)
{
for(int i=0; i<n;i++){
bb.mas[i]+=bb.a[i];
}
}
void vvod(); 
void show(){
for(int i=0; i<n;i++){
cout<<mas[i];
}
}
};

функцию ввода, констр, дестр не писал и так ясно.


void main(){
mycl bb;
bb.vvod();
1+bb;
void show();
}
z3rg вне форума Ответить с цитированием
Старый 22.03.2009, 03:06   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

я б написал бы что-то вроде этого
Код:
#include <iostream>
using namespace std;

class x_vector
{
	enum { max_size = 10 };
public:
	x_vector(){ data = new int[max_size]; memset(data,0,sizeof(int)*max_size); }
	x_vector( const x_vector &rhs ){ *this = rhs; }
	~x_vector() { delete[] data;}

	//..............................................
	const x_vector operator + (const x_vector &rhs)
	{
		x_vector buff(*this);

		for ( int i = 0; i < max_size; ++i )
			buff.data[i] = rhs.data[i];

		return buff;
	}
	//..............................................
	x_vector &operator = (const x_vector &rhs){
		if(!data) delete[] data; else data = new int [max_size];
		for ( int i = 0; i < max_size; ++i )
			this->data[i] = rhs.data[i];
		return *this;
	}
private:
	int *data;
};


int main()
{
	x_vector vec, vec1, vec2;
	vec = vec1 + vec2;
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегрузка оператора << z3rg Общие вопросы C/C++ 18 02.03.2010 02:58
задачка перегрузка оператора + z3rg Общие вопросы C/C++ 7 17.03.2009 13:23
Перегрузка оператора + (С++) MjRed Помощь студентам 1 15.12.2008 18:57
Перегрузка оператора Crucian Общие вопросы C/C++ 2 22.10.2007 09:44