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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2011, 23:35   #21
Furchtlos
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 20
По умолчанию

Ну так у меня в конструкторе НЕТУ new. Я не динамически выделяю память.
Furchtlos вне форума Ответить с цитированием
Старый 27.12.2011, 23:38   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нету?
ну ну.
Код:
	matrix()
	{	cout<<"Vvedite imya matrici: ";
		cin>>imya;
		cout<<endl<<"Vverite razmer matrici ";
		cin>>size;
		x=new double *[size];//это что?
		for (int i=0;i<size;i++)
		{
			x[i]=new double[size];//а это?
		}
		for(int i=0;i<size;i++)
		{for(int j=0;j<size;j++)
			{cout<<"Vvedite X["<<i<<"]["<<j<<"]"<<endl;
			cin>>x[i][j];}
		}
	}
	matrix(int size)
	{	
		x=new double *[size];//это?
		for (int i=0;i<size;i++)
		{
			x[i]=new double[size];//и это?
		}
		for(int i=0;i<size;i++)
		{for(int j=0;j<size;j++)
			{x[i][j]=0;}
		}
	}
прочтите комменты которые я добавил.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.12.2011, 23:44   #23
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Furchtlos Посмотреть сообщение
А в свой мэйн запхать не?
2. В коде, который ты выложил нет никакой функции main.
Не понятно что именно ты пытаешься скомпилировать.

А значит нельзя воссоздать условия, при которых твой код ломается.
А значит нельзя искать ошибки (есть риск найти совсем другие ошибки, или не найти вовсе).
_Bers вне форума Ответить с цитированием
Старый 27.12.2011, 23:50   #24
Furchtlos
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 20
По умолчанию

Увидел. Забыл что динамический массив. Ладно не в нём дело, разберусь с памятью. Скажите почему ошибку кидает?
Bers, код в предыдущих постах.
Furchtlos вне форума Ответить с цитированием
Старый 27.12.2011, 23:56   #25
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Furchtlos Посмотреть сообщение
Увидел. Забыл что динамический массив. Ладно не в нём дело, разберусь с памятью. Скажите почему ошибку кидает?
Bers, код в предыдущих постах.
Короче. Тебе нужно что б тебе помогли найти ошибку, или нет?
Если да - выкладывай код по человечески.

То ли, у тебя класс объявляется внутри майна, то ли ты боевые операции запихал в глобальную область - я не гадалка, и гадать не хочу.

Если же ты считаешь, что ты предоставил достаточно информации, а помогальщики типа пускай сами догадываются, как ты точку входа в программу организовал - ну жди тогда телепатов.
_Bers вне форума Ответить с цитированием
Старый 27.12.2011, 23:57   #26
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ладно не в нём дело, разберусь с памятью. Скажите почему ошибку кидает?
судя по всему проблема в конструкторе без параметров, попробуйте перед чтением из cin(обоими чтениями), вставить cin.ignore().

PS: лично вижу еще моменты с ошибками.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.12.2011, 01:39   #27
Furchtlos
Пользователь
 
Регистрация: 23.11.2011
Сообщений: 20
По умолчанию

Код:
#include "stdafx.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	class matrix
	{
	char imya[20];
	int size;
	double **x;
	public:
	matrix()
	{	cout<<"Vvedite imya matrici: ";
		cin>>imya;
		cout<<endl<<"Vverite razmer matrici ";
		cin>>size;
		x=new double *[size];
		for (int i=0;i<size;i++)
		{
			x[i]=new double[size];
		}
		for(int i=0;i<size;i++)
		{for(int j=0;j<size;j++)
			{cout<<"Vvedite X["<<i<<"]["<<j<<"]"<<endl;
			cin>>x[i][j];}
		}
	}
	matrix(int size)
	{	
		x=new double *[size];
		for (int i=0;i<size;i++)
		{
			x[i]=new double[size];
		}
		for(int i=0;i<size;i++)
		{for(int j=0;j<size;j++)
			{x[i][j]=0;}
		}
	}
	void vivod()
	{
		cout<<imya<<endl;
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				cout<<x[i][j]<<" ";
			}
			cout<<endl;
		}
	}
	matrix operator+(matrix m2)
	{
		matrix temp(size);
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				temp.x[i][j]=x[i][j]+m2.x[i][j];}
		}
		return temp;
		
		
	}
	matrix operator-(matrix m2)
	{
		matrix temp(size);
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				temp.x[i][j]=x[i][j];
				temp.x[i][j]=x[i][j]-m2.x[i][j];}
		}
	 	return temp;
	}
	matrix operator=(matrix m2)
	{
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{x[i][j]=m2.x[i][j];}
		}
		return *this;
	}
	matrix operator*(matrix m2)
	{
		matrix temp(size);
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				temp.x[i][j]=x[i][j]*m2.x[i][j];}
		}
		return temp;
	}
	matrix operator*(int m)
	{
		matrix temp(size);
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{
				temp.x[i][j]=x[i][j]*m;}
		}
		return temp;
	}
	matrix operator*=(int m2)
	{
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{x[i][j]=x[i][j]*m2;}
		}
		return *this;
	}
	void checkforsymmetry()
	{
		bool symmetrical;
		for(int i=0;i<size;i++)
		{
			for(int j=0;j<size;j++)
			{if(x[i][j]==x[j][i])
				{symmetrical=true;}
			else
			{symmetrical=false;
			break;}
			}
		}
		if(symmetrical)
		{cout<<"Matrix is symmetrical"<<endl;}
		else
		{cout<<"Matrix is NOT symmetrical"<<endl;}
	}
	};
	matrix(x1);
	matrix(x2);
	matrix(x3);
	x1=(x2+x3)*2;
	x1.vivod();
	system("pause");
	return 0;
}
Furchtlos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с перегрузкой оператора потока в классах - << monolit111 Общие вопросы C/C++ 13 27.11.2011 20:40
Программа на языке С с использованием условных операторов и операторов цикла. Valentin Pirgach Помощь студентам 0 17.10.2011 20:16
Проблема с перегрузкой операторов в C++ StudentofSUSU Помощь студентам 2 30.09.2010 10:04
Проблема с перегрузкой операторов, не могу разобраться mrLee Помощь студентам 1 30.01.2010 00:23
Проблема с перегрузкой операторов, не могу разобраться mrLee Общие вопросы C/C++ 0 29.01.2010 18:45