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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 00:28   #1
neon0858
 
Регистрация: 18.05.2009
Сообщений: 3
Восклицание класс N-Мерный вектор

Добрый вечер,ребята,искал везде но путного ничего не нашел по этой теме.

Моя задача следующая,в принципе совсем не сложная,но почему-то работать как следует не хочет...

работает криво сами перегрузки операторов,но я думаю дело в самих конструкторах.

Цитата:
Код:
int i,kol;//i-глобальная переменная для счетчиков,kol - глобальное колличество измерений
class point
{ public:
  int *x;//указатель многомерной координаты
  int N; //длина массива
point() //конструктор по умолчанию
	  {
	   N = kol;
	   x = new int [N];
	   } //присваивает колличеству измерений N=0...
	   ~point(){};
	   };
class vector
{
public:
point S[1];
//----------------------------------------------
vector()
{
for (i = 0; i < kol; i++)
{
 S[0].x[i]=0;
 S[1].x[i]=0;
}
};
~vector(){};

//----------------------------------------------
vector(const point st,const point fin)
{
S[0].N = kol;
for (i = 0; i < kol; i++) {
S[0].x[i] = st.x[i];}
S[1].N = kol;
for (i = 0; i < kol; i++) {
S[1].x[i] = fin.x[i];}
}
//----------------------------------------------
//----------------------------------------------
};
vector operator+(const vector a,vector b)
{vector temp;
for (i = 0; i < kol; i++)
{
temp.S[0].x[i]=a.S[0].x[i]+b.S[0].x[i];
temp.S[1].x[i]=a.S[1].x[i]+b.S[1].x[i];
}
return temp;
}
//----------------------------------------------
vector operator-(vector a,vector b)
{vector temp;
for (i = 0; i < kol; i++)
{
temp.S[0].x[i]=a.S[0].x[i]-b.S[0].x[i];
temp.S[1].x[i]=a.S[1].x[i]-b.S[1].x[i];
}
return temp;
}
//----------------------------------------------
vector operator*(vector a,int scal)
{
vector temp;
for (i = 0; i < kol; i++)
{
temp.S[0].x[i]=a.S[0].x[i]*scal;
temp.S[1].x[i]=a.S[1].x[i]*scal;
}
return temp;
}

Главные проблемы:выводит не правильный результат,ошибки работы с указателями :
Access violation at address 023DB859.Read of address FFFFFFFF.
Причем я применял пока только сложение...
neon0858 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс-Контейнер Вектор Zorg2 Помощь студентам 1 10.04.2011 22:32
C++ создать класс Вектор Drakowa Помощь студентам 2 29.03.2011 17:06
С++класс-вектор cati Помощь студентам 4 21.04.2010 21:58
N-мерный вектор xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 4 16.04.2008 08:18
С++ Создать класс содержащий 3х-мерный массив int'ов, заполнять с помощью генератора случайных чисел vipER Помощь студентам 1 22.09.2007 22:08