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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 19:03   #1
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию клас динамических векторов,перегрузка

Нужно создать класс динамических векторов. У меня проблема в выражении V3=V1+V2;, оно зависает. не могу понять что не так? Подскажите пожалуйста.
Код:
#include "stdafx.h"
#include <conio.h>
#include "iomanip"
#include "iostream"
using namespace std;
typedef int te;
	 int n;
class Vectorr
{
public:
	int size;
    int* data;
	Vectorr(te asize) {
		size=asize;
		data=new int[size];
	}

~Vectorr(void){
delete[] data;
};
friend Vectorr operator+( Vectorr &, Vectorr &);
friend ostream & operator<<( ostream &,Vectorr &);
friend istream & operator>>( istream &,Vectorr &);
};
void main(void)
{
int i;
cout<<"Vvedit kilkist elementiv vektoriv: ";
cin>>n;
Vectorr V1(n),V2(n),V3(n),V4(n);
cin>>V1;
cin>>V2;
cout<<"Dodavannja vektoriv\n";
cout<<V1;

V3=V1+V2;
cout<<V3;


getch();

}

istream & operator>>( istream & os,Vectorr & a)
 {
 cout<<"Vvedit vektor:"<<endl;
 for (int i=0;i<n;i++)
{
	cout<<"\n"<<i<<" element :";
os>>a.data[i];
}
 return os;
 
 }

ostream & operator<<( ostream & os, Vectorr & a){


os<<"Vector(";
for (int i=0;i<n;i++)
{
	os<<setw(2)<<a.data[i]<<",";
 }
os<<")"<<"\n";

return os;
}


Vectorr operator+( Vectorr &a, Vectorr &b)
{
Vectorr tmp(n);
 for (int i=0;i<3;i++)
{
tmp.data[i]=a.data[i]+b.data[i];
}
return (tmp);
}

Vectorr operator*( Vectorr & a, Vectorr & b)
{
Vectorr tmp(n);
 for (int i=0;i<n;i++)
{
tmp.data[i]=a.data[i]*b.data[i];
 }
return(tmp);
}

Последний раз редактировалось tiger; 12.12.2011 в 19:12.
tiger вне форума Ответить с цитированием
Старый 13.12.2011, 00:07   #2
tiger
Пользователь
 
Регистрация: 30.03.2008
Сообщений: 52
По умолчанию

Ну посмотрите кто-нибудь что я не так написал, уже десяток раз просматривал и не могу найти где ошибка.
tiger вне форума Ответить с цитированием
Старый 13.12.2011, 01:11   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

tiger

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

ошибок много, и они настолько примитивные, что не хочется пересказывать учебник.

Например в классе есть указатель, но отсутствует конструктор копирования и оператор присваивания.
Список литературы есть в разделе. Ищи авторов: Скотт Мейерс, Герб Саттер, Андрей Александреску. Читать у них все что есть до посинения просветления.
Rififi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой клас STUDENT aless23 C++ Builder 1 20.06.2011 17:46
Простенький клас Chartvit Общие вопросы C/C++ 2 07.01.2010 20:43
Ввод векторов и матриц, умножение матрицы на вектор и вычисление скалярного призведения двух векторов zverushka Помощь студентам 18 20.02.2009 15:25